Tag: inheritance

调用基函数然后inheritance函数

我有一个基类和一个类inheritance基地。 基类有几个虚拟函数,inheritance类可能会覆盖。 但是,基类中的虚函数具有必须在inheritance类覆盖被调用之前运行的代码。 有什么方法可以先调用基类虚函数,然后inheritance类重写。 不需要调用base.function()。 我知道我可以简单地做两个函数,一个被调用,另一个虚拟。 但是有没有办法保持同样的名字? 我知道我可能需要改变一些事情。 class myBase { public virtual myFunction() { /* must-run code, Called first */ } } class myInherited : myBase { public override myFunction() { /* don't use base.myFunction();, called from base.myFunction(); */ } } 类似的问题在这里

匿名与命名的内部类? – 最佳实践?

我有一个类,我们称之为LineGraph,它呈现一个线条图。 我需要inheritance它,但派生类只在一个地方使用,并耦合到使用它的类。 所以我正在使用一个内部类。 我看到两种方法来做到这一点: 匿名的内部类 public class Gui { LineGraph graph = new LineGraph() { // extra functionality here. }; } 命名的内部类 public class Gui { MyLineGraph graph = new MyLineGraph(); private class MyLineGraph extends LineGraph { // extra functionality here. } } 我不是匿名的内部类的粉丝,因为坦率地说,我认为它看起来真的很丑。 但是对于只在一个地方使用的子类来说,是一个命名的内部类的矫枉过正? 什么是公认的做法?

如何在JavaScript中实现C#访问修饰符?

概要 我试图在JavaScript中正确地实现inheritance和封装,就像使用基于类的语言(如c#)一样。 丑陋的部分是受保护的成员在私人实例中有多个副本,只能通过闭包进行访问,除了将这些成员刷新到私有实例之外,我没有其他想法。 如果可能的话,我想摆脱Function.extend代码中的transmit和transfer 。 故事 由于程序集可能是一个超出javascript范围的概念,我不考虑internal修饰符,但public , protected和private 。 public和private修改者并不难实现; 但是对于inheritance, protected是非常棘手的。 然而,这不是一个推荐的事情,我读过的大多数文章说, 前缀与一个特殊的字符和文件 。 但似乎我坚持让JavaScript来模拟基于类的语言..我偷了这个想法,并以我的方式实现,代码是在这篇文章的后面。 现场背后的想法是把更高的可达性与更高的原型,并访问最高的一个封闭。 假设我们有三个原型A , D和G ,看起来像 因为一个对象不可能是一个不属于原型链的另一种types的实例。 我select的方式是水平链接protected级别,并从声明types的原型复制成员。 这使嵌套类成为可能,因为在派生较less的types上声明的成员可以传播到更多派生types; 在我的代码中的transmit方法是做到这一点。 如果A , D和G拥有自己的受保护成员,则看起来像: 访问私有实例的闭包是this[''] 。 它需要一个用于识别类的参数。 修饰符持有者只是类标识符,在Function.extend名为y ,在testing代码中是_ ,它不应暴露在类声明之外。 它也被用作this['']的快捷键。 _['base']实际上不仅是基础构造函数调用者,而且是私有实例创build者。 它创build私有实例并为每个构造函数更新this['']的inheritance,所以它应该总是在构造函数中调用。 尽pipe一个私有实例可以访问公共成员,但是不应该被用来改变它们,因为this['']在访问公共成员时并不保证被调用。 但是私人实例的访问是; recent记得最近访问的私有实例,如果有变化,更新受保护的成员。 我的问题是,我怎样才能摆脱这种清爽的保护成员? 有更好的想法来实现封装更多的现实? PS:我实际上不想要一个使用非标准方法/属性的解决scheme。如果使用的方法/属性对于旧的浏览器来说太过时尚,它会更好。 Function.extend Function.extend=function (base, factory) { factory.call(initializeClass); updateStaticMembersOfDerivedInnerClasses(y['public'].constructor); transfer(y['protected'], y['public']); return y['public'].constructor; […]

C ++inheritance和成员函数指针

在C ++中,成员函数指针可以用来指向派生的(甚至是基类)成员吗? 编辑:也许一个例子会有所帮助。 假设我们按照inheritance的顺序有三个类X , Y , Z的层次结构。 因此, Y有一个基类X和一个派生类Z 现在我们可以为Y类定义一个成员函数指针p 。 这写成: void (Y::*p)(); (为了简单起见,我假定我们只对签名void f() )的函数感兴趣 这个指针现在可以用来指向Y类的成员函数。 这个问题(真的有两个问题)是: 可以用p指向派生类Z的函数吗? p可以用来指向基类X的函数吗?

多态可能没有inheritance?

在一次采访中,我被问到是否可以在没有inheritance的情况下实现多态。 这可能吗?

评论C#的inheritance(实际上是任何语言)

假设我有这个接口 public interface IFoo { ///<summary> /// Foo method ///</summary> void Foo(); ///<summary> /// Bar method ///</summary> void Bar(); ///<summary> /// Situation normal ///</summary> void Snafu(); } 和这个class级 public class Foo : IFoo { public void Foo() { … } public void Bar() { … } public void Snafu() { … } } 有没有办法,还是有一种工具,可以让我自动把每个成员在基类或接口的意见? 因为我讨厌为每个派生的子类重写相同的注释!

JPA:实现模型层次结构 – @MappedSuperclass与@Inheritence

我正在使用PostgreSQL和JPA Play Framework 1.2.4。 我想有一个模型层次结构,并看到有这样做的一些替代scheme。 我有一个基类(这是抽象的)和两个扩展这个基类的具体类。 我不想坚持这个基础课,而我想要具体的课。 在基类中,我有另一个Model类作为属性,换句话说,我在我的基类中有@ManyToOne关系。 我的问题是实现这个的最好方法是什么? 使用@MappedSuperclass或@Inheritence与TABLE_PER_CLASS策略? 我有点困惑,因为它们看起来几乎相同。 我对于将来可能面临的查询和性能问题也有一些担忧。

Backbone.js视图inheritance

我有一个叫做Pannel的视图,它只是一个closuresbutton的背景。 我想把这个观点扩展到一个叫做PannelAdvanced视图。 我将如何与backbone.js做到这一点? 现在所有的例子都有Backbone.View.Extend但是只是扩展了Backbone.View ; 我想扩展我的PannelView 。

无法从List <Bar>转换为List <Foo>

我有这样一个设置: abstract class Foo {} class Bar : Foo {} 和这种forms的其他方法: void AddEntries(List<Foo>) {} 我正在尝试使用Bartypes的对象列表调用此方法 List<Bar> barList = new List<Bar>() AddEntries(barList); 但是这给了我错误: 无法从List <Bar>转换为List <Foo> 反正有这个问题吗? 我需要保持使用抽象类的方法定义。

JavaScript的inheritance:当构造函数有参数

使用纯JavaScript来做inheritance,这是我通常做的: function A() {} A.prototype.run = function () {}; function B() {} B.prototype = new A; B.prototype.constructor = B; 由于没有任何参数传入构造函数,新的A没有什么可抱怨的。 现在,如果构造函数有parameter passing,我还没有想出inheritance的好方法。 例如, function A(x, y) {} A.prototype.run = function () {}; function B(x, y) {} B.prototype = new A; B.prototype.constructor = B; 我可以传递一些任意值,如: B.prototype = new A(null, null); 在某些情况下,我可能需要在A的构造函数中validationx和y。在某些极端情况下,检查x或y时需要抛出错误。 那么B就没有办法使用新的A. 有什么build议么? 谢谢!