Questions tagged «inheritance»

继承是面向对象编程中的系统,该系统允许对象支持由先前类型定义的操作,而不必提供自己的定义。它是面向对象编程中多态性的主要载体。

8
如何使用ES6类扩展Function?
Наэтотвопросестьответына 堆栈溢出нарусском:Наследованиеотфункции ES6允许扩展特殊对象。因此可以从该函数继承。可以将此类对象称为函数,但是如何实现此类调用的逻辑呢? class Smth extends Function { constructor (x) { // What should be done here super(); } } (new Smth(256))() // to get 256 at this call? 任何类方法都可通过引用类实例this。但是,当将其称为函数时,this是指window。将类实例作为函数调用时,如何获得对它的引用? PS:同样的俄语问题。

7
为什么一个接口不能实现另一个接口?
我的意思是: interface B {...} interface A extends B {...} // allowed interface A implements B {...} // not allowed 我用谷歌搜索,发现了这个: implements表示定义接口方法的实现。但是接口没有实现,因此是不可能的。 但是,interface是100%抽象的类,抽象类可以实现接口(100%抽象的类)而无需实现其方法。将其定义为“接口”时会出现什么问题? 详细来说, interface A { void methodA(); } abstract class B implements A {} // we may not implement methodA() but allowed class C extends B { void methodA(){} …


5
Python扩展-使用super()Python 3 vs Python 2
本来我想问这个问题,但是后来我发现它已经被想到了…… 在谷歌搜索中发现了扩展configparser的示例。以下适用于Python 3: $ python3 Python 3.2.3rc2 (default, Mar 21 2012, 06:59:51) [GCC 4.6.3] on linux2 >>> from configparser import SafeConfigParser >>> class AmritaConfigParser(SafeConfigParser): ... def __init_(self): ... super().__init__() ... >>> cfg = AmritaConfigParser() 但不适用于Python 2: >>> class AmritaConfigParser(SafeConfigParser): ... def __init__(self): ... super(SafeConfigParser).init() ... >>> cfg = AmritaConfigParser() Traceback …


7
是否继承了静态字段?
当静态成员被继承时,它们对于整个层次结构还是整个类都是静态的,即: class SomeClass { public: SomeClass(){total++;} static int total; }; class SomeDerivedClass: public SomeClass { public: SomeDerivedClass(){total++;} }; int main() { SomeClass A; SomeClass B; SomeDerivedClass C; return 0; } 在所有这三种情况下总计为3,或者对于2为SomeClass1是SomeDerivedClass?
102 c++  inheritance  static 


2
覆盖类常量与属性
我想更好地理解为什么在以下情况下,类常量与实例变量的继承方式有所不同。 <?php class ParentClass { const TEST = "ONE"; protected $test = "ONE"; public function showTest(){ echo self::TEST; echo $this->test; } } class ChildClass extends ParentClass { const TEST = "TWO"; protected $test = "TWO"; public function myTest(){ echo self::TEST; echo $this->test; } } $child = new ChildClass(); $child->myTest(); $child->showTest(); …

10
如何在ES6中不必使用super来扩展类?
是否可以在ES6中扩展类而无需调用super方法来调用父类? 编辑:这个问题可能会引起误解。这是我们必须打电话的标准,super()还是我遗漏了一些东西? 例如: class Character { constructor(){ console.log('invoke character'); } } class Hero extends Character{ constructor(){ super(); // exception thrown here when not called console.log('invoke hero'); } } var hero = new Hero(); 当我不调用super()派生类时,我遇到了范围问题->this is not defined 我正在v2.3.0中使用iojs --harmony运行它

11
PHP中的多重继承
我正在寻找一种好的,简洁的方法来解决以下事实:PHP5仍然不支持多重继承。这是类的层次结构: 消息 -的TextMessage -------- InvitationTextMessage - EmailMessage -------- InvitationEmailMessage 这两种类型的Invitation *类有很多共同点。我很想有一个共同的父类,邀请函,他们两个都可以继承。不幸的是,他们与当前祖先也有很多共同点……TextMessage和EmailMessage。古典对多重继承的渴望。 解决问题的最轻巧的方法是什么? 谢谢!
97 php  oop  inheritance 

2
Qt是否支持虚拟纯插槽?
我的GUI项目中Qt有很多“配置页”类,它们都直接从继承QWidget。 最近,我意识到所有这些类都共享2个公共插槽(loadSettings()和saveSettings())。 对此,我有两个问题: BaseConfigurationPage用这两个插槽作为虚拟纯方法编写中间基础抽象类(让其命名)是否有意义?(每个可能的配置页面都将始终具有这两种方法,因此我会说“是”) 在进行代码的重大更改之前(如果需要):Qt是否支持虚拟纯插槽?我有什么需要注意的吗? 这是描述所有内容的代码示例: class BaseConfigurationPage : public QWidget { // Some constructor and other methods, irrelevant here. public slots: virtual void loadSettings() = 0; virtual void saveSettings() = 0; }; class GeneralConfigurationPage : public BaseConfigurationPage { // Some constructor and other methods, irrelevant here. public slots: void …

7
继承和依赖注入
我有一组angular2组件,都应该注入一些服务。我首先想到的是,最好是创建一个超类并在其中注入服务。然后,我的任何组件都将扩展该超类,但是这种方法不起作用。 简化示例: export class AbstractComponent { constructor(private myservice: MyService) { // Inject the service I need for all components } } export MyComponent extends AbstractComponent { constructor(private anotherService: AnotherService) { super(); // This gives an error as super constructor needs an argument } } 我可以通过MyService在每个组件中注入并使用该参数进行super()调用来解决此问题,但这显然是荒谬的。 如何正确地组织我的组件,以便它们从超类继承服务?

5
在Python类继承中继承文档字符串
我正在尝试在Python中进行一些类继承。我希望每个类和继承的类都具有良好的文档字符串。因此,我认为对于继承的类,我希望这样做: 继承基类文档字符串 也许将相关的额外文档附加到文档字符串中 在类继承情况下,是否有任何(可能是优雅的或pythonic的)方式来进行这种文档字符串操作?多重继承怎么样?

4
Ruby自定义错误类:message属性的继承
我似乎找不到有关自定义异常类的更多信息。 我所知道的 您可以声明您的自定义错误类,并使其继承自StandardError,因此可以使用rescued: class MyCustomError < StandardError end 这使您可以使用以下方法提高它: raise MyCustomError, "A message" 然后在救援时得到该消息 rescue MyCustomError => e puts e.message # => "A message" 我不知道 我想给我的异常一些自定义字段,但我想message从父类继承属性。我发现阅读关于这个主题是@message不是异常类的实例变量,所以我担心我的产业将无法正常工作。 谁能给我更多细节吗?如何实现带有object属性的自定义错误类?以下是正确的: class MyCustomError < StandardError attr_reader :object def initialize(message, object) super(message) @object = object end end 然后: raise MyCustomError.new(anObject), "A message" 要得到: rescue MyCustomError …

5
虚拟继承如何解决“钻石”(多重继承)的歧义?
class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = new D(); a->eat(); } 我了解钻石的问题,并且上面的代码没有这个问题。 …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.