Questions tagged «inheritance»

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

1
哪些类别不能被子类别化?
是否有关于哪些内置库和标准库类不可归类(“最终”)的规则? 从Python 3.3开始,以下是一些示例: bool function operator.itemgetter slice 我发现了一个问题,涉及用C语言和纯Python实现“最终”类。 我想了解什么原因可以解释为什么首先选择一个班级是“最终的”。

4
为什么要使用“ using”关键字来访问我的基类方法?
我编写了以下代码,以解释我的问题。如果我注释第11行(使用关键字“ using”),则编译器不会编译该文件并显示此错误:invalid conversion from 'char' to 'const char*'。void action(char)在Parent类中似乎看不到该类的方法Son。 为什么编译器以这种方式运行?还是我做错了什么? class Parent { public: virtual void action( const char how ){ this->action( &how ); } virtual void action( const char * how ) = 0; }; class Son : public Parent { public: using Parent::action; // Why should i write …
75 c++  oop  inheritance  using 

11
超级骨干
当我重写a的clone()方法时Backbone.Model,是否可以从植入中调用此重写的方法?像这样: var MyModel = Backbone.Model.extend({ clone: function(){ super.clone();//calling the original clone method } })

5
Django表单-设置标签
我有一个继承自其他2种形式的形式。在我的表单中,我想更改在父表单之一中定义的字段的标签。有谁知道该怎么做? 我正在尝试在自己的服务器中执行此操作__init__,但是它抛出一个错误,指出“'RegistrationFormTOS'对象没有属性'email'”。有人知道我该怎么做吗? 谢谢。 这是我的表单代码: from django import forms from django.utils.translation import ugettext_lazy as _ from registration.forms import RegistrationFormUniqueEmail from registration.forms import RegistrationFormTermsOfService attrs_dict = { 'class': 'required' } class RegistrationFormTOS(RegistrationFormUniqueEmail, RegistrationFormTermsOfService): """ Subclass of ``RegistrationForm`` which adds a required checkbox for agreeing to a site's Terms of Service. """ email2 …

4
哪些CSS属性是继承的?
我注意到有些属性是在CSS中继承的,而有些则不是。例如,text-size属性是继承的,但是padding和margin不被子块继承。那么如何确定哪些属性是继承的,哪些不是?
73 css  inheritance 

5
在C ++中,是否可以将一个类声明为继承自另一个类?
我知道我可以做到: class Foo; 但是我可以将一个类声明为继承自另一个类吗,例如: class Bar {}; class Foo: public Bar; 用例示例是协变引用返回类型。 // somewhere.h class RA {} class RB : public RA {} ...然后在另一个不包含某处的标头中 // other.h class RA; class A { public: virtual RA* Foo(); // this only needs the forward deceleration } class RB : public RA; // invalid …

18
从一个具体的类继承的好例子吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 背景: 作为Java程序员,我广泛地从接口继承(而不是:实现),有时我设计抽象基类。但是,我从来没有真正感到有必要将具体的(非抽象的)类作为子类(在我这样做的情况下,后来证明了另一种解决方案,例如委托会更好)。 因此,现在我开始感到几乎没有任何情况可以从具体类进行继承。一方面,对于非平凡的类,李斯科夫替换原理(LSP)似乎几乎是无法满足的。还有许多其他问题,这里似乎呼应了类似的意见。 所以我的问题是: 在哪种情况下(如果有)从具体类继承实际上有意义吗?您能否举一个从另一个具体类继承来的类的实际实例,在这种情况下,您认为这是受限制的最佳设计?我对满足LSP的示例(或满足LSP似乎不重要的示例)特别感兴趣。 我主要有Java背景,但是我对任何语言的示例都感兴趣。


12
为什么要使用接口,多重继承与接口,接口的优点?
我对此事仍然有些困惑。我到目前为止发现的是 (这里已经问过类似的问题,但我还有其他几点。) 接口是仅抽象方法和最终字段的集合。 Java中没有多重继承。 接口可用于在Java中实现多重继承。 继承的一个强项是我们可以在派生类中使用基类的代码,而无需再次编写。可能这是继承在那里最重要的事情。 现在.. Q1。由于接口仅具有抽象方法(无代码),因此,我们如何说如果实现任何接口,那么它就是继承?我们没有使用它的代码。 Q2。如果实现接口不是继承,那么如何使用接口实现多重继承? Q3。无论如何,使用接口有什么好处?他们没有任何代码。我们需要在实现它的所有类中一次又一次地编写代码。 那为什么要建立接口呢? 注意:我发现一种情况下接口是有用的。它的一个示例就像在Runnable接口中,我们有public void run()方法,在其中定义线程的功能,并且内置了编码,该方法将作为单独的线程运行。因此,我们只需要编写线程中的操作代码,Rest是预定义的。但是,这也可以使用抽象类和全部来实现。 那么使用接口的确切好处是什么?使用接口实现的真的是多重继承吗?

6
一个接口是否应该继承另一个接口
我似乎找不到答案,只是想确保它是一个好的编码标准。我有A许多不同类使用的接口,并且不想A更改接口。我遇到了一个新的要求,该要求将要求许多实现Interface的类都需要一个枚举A,但是并非所有的类都需要该枚举。我不希望不需要此新枚举的类实现此新功能。因此,我创建B了包含需要添加的新枚举的接口。然后,我使接口B继承接口A,这是我关心的问题,一个接口可以继承另一个接口吗?为了继续进行更改,然后更改了需要新枚举实现接口的类。B而不是interface,A因为它是由interface继承的B。我考虑过在需要它们的类中实现这两个接口,但是我在整个代码中都使用该接口,并且只想使用一个接口浏览类,而不要使用两个接口。 我希望这已经足够清楚(可能很长),但是如果有人可以给我一些建议,或者我做对了或者我做错了,请告诉我。 谢谢!
71 .net  oop  inheritance 

3
派生对基类成员数据的模板类访问
这个问题是一个在问的赞助这个线程。 使用以下类定义: template <class T> class Foo { public: Foo (const foo_arg_t foo_arg) : _foo_arg(foo_arg) { /* do something for foo */ } T Foo_T; // either a TypeA or a TypeB - TBD foo_arg_t _foo_arg; }; template <class T> class Bar : public Foo<T> { public: Bar (const foo_arg_t …

5
C ++静态多态性(CRTP)并使用派生类中的typedef
我阅读了Wikipedia上有关C ++中反复出现的模板模式以实现静态(阅读:编译时)多态性的文章。我想对其进行概括,以便可以基于派生类型更改函数的返回类型。(由于基本类型从template参数知道派生类型,因此这似乎应该可行)。不幸的是,以下代码无法使用MSVC 2010进行编译(我现在无法轻松访问gcc,因此我还没有尝试过)。有人知道为什么吗? template <typename derived_t> class base { public: typedef typename derived_t::value_type value_type; value_type foo() { return static_cast<derived_t*>(this)->foo(); } }; template <typename T> class derived : public base<derived<T> > { public: typedef T value_type; value_type foo() { return T(); //return some T object (assumes T is default constructable) } …

9
C ++:结构可以从类继承吗?
我正在查看我正在使用的API的实现。 我注意到结构是从类继承而来的,我停下来思考一下…… 首先,我没有在研究的C ++手册中看到某个结构可以从另一个结构继承: struct A {}; struct B : public A {}; 我猜想在这种情况下,结构B继承了结构A中的所有数据。我们可以在结构中声明公共/私有成员吗? 但是我注意到了这一点: class A {}; struct B : public A {}; 从我的在线C ++手册中: 类是一数据结构的一个扩展的概念:不是只持有数据,它可以容纳两个数据和功能。 即使类A具有某些成员函数,上述继承也有效吗?当结构继承它们时,函数会发生什么?而相反呢:从结构继承的类呢? 实际上,我有这个: struct user_messages { std::list<std::string> messages; }; 而且我经常这样迭代foreach message in user_messages.messages。 如果要向结构中添加成员函数,是否可以更改其声明并将其“提升”为类,添加函数,并且仍然像以前一样遍历user_messages.messages? 显然,我仍然是新手,我仍然不清楚结构和类之间如何交互,两者之间的实际区别是什么,继承规则是什么...


4
Java方法注释如何与方法覆盖一起使用?
我有一个父类Parent和一个子类Child,因此定义为: class Parent { @MyAnnotation("hello") void foo() { // implementation irrelevant } } class Child extends Parent { @Override foo() { // implementation irrelevant } } 如果我得到Method参考Child::foo,childFoo.getAnnotation(MyAnnotation.class)会给我@MyAnnotation吗?还是会null? 我对注释如何与Java继承一起工作或是否与Java继承一起工作更感兴趣。

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.