Questions tagged «inheritance»

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

6
无法将标识列密钥生成与<union-subclass>(TABLE_PER_CLASS)一起使用
com.something.SuperClass: @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class SuperClass implements Serializable { private static final long serialVersionUID = -695503064509648117L; long confirmationCode; @Id @GeneratedValue(strategy = GenerationType.AUTO) // Causes exception!!! public long getConfirmationCode() { return confirmationCode; } public void setConfirmationCode(long confirmationCode) { this.confirmationCode = confirmationCode; } } com.something.SubClass: @Entity public abstract class …

13
Java:调用超级方法,该方法调用覆盖的方法
public class SuperClass { public void method1() { System.out.println("superclass method1"); this.method2(); } public void method2() { System.out.println("superclass method2"); } } public class SubClass extends SuperClass { @Override public void method1() { System.out.println("subclass method1"); super.method1(); } @Override public void method2() { System.out.println("subclass method2"); } } public class Demo { public static …

4
Python中的继承和初始化方法
我是python的初学者。我无法理解继承和__init__()。 class Num: def __init__(self,num): self.n1 = num class Num2(Num): def show(self): print self.n1 mynumber = Num2(8) mynumber.show() 结果: 8 还行吧。但我替换Num2为 class Num2(Num): def __init__(self,num): self.n2 = num*2 def show(self): print self.n1,self.n2 结果: Error. Num2 has no attribute "n1". 在这种情况下,如何Num2访问n1?

9
获取父类中子类的名称(静态上下文)
我在构建ORM库时要考虑到重用和简单性。一切正常,除了我被愚蠢的继承限制所困。请考虑以下代码: class BaseModel { /* * Return an instance of a Model from the database. */ static public function get (/* varargs */) { // 1. Notice we want an instance of User $class = get_class(parent); // value: bool(false) $class = get_class(self); // value: bool(false) $class = get_class(); // value: …

9
C#的注释继承(实际上是任何语言)
假设我有这个介面 public interface IFoo { ///&lt;summary&gt; /// Foo method ///&lt;/summary&gt; void Foo(); ///&lt;summary&gt; /// Bar method ///&lt;/summary&gt; void Bar(); ///&lt;summary&gt; /// Situation normal ///&lt;/summary&gt; void Snafu(); } 而这个班 public class Foo : IFoo { public void Foo() { ... } public void Bar() { ... } public void Snafu() { …

10
为什么C ++不允许继承友谊?
为什么友谊在C ++中至少不能有选择地继承?我知道出于明显的原因而禁止传递性和自反性(我说这只是为了避开简单的FAQ引用答案),但是缺少一些东西使virtual friend class Foo;我感到困惑。有人知道这个决定背后的历史背景吗?友谊真的只是一种有限的黑客手段,此后又进入了一些晦涩可敬的用途吗? 编辑以澄清问题:我是在谈论以下情况,而不是 A的孩子接触B或B及其孩子都接触的情况。我也可以想象有选择地授予对朋友功能的覆盖等的访问权限。 class A { int x; friend class B; }; class B { // OK as per friend declaration above. void foo(A&amp; a, int n) { a.x = n; } }; class D : public B { /* can't get in A w/o 'friend …

3
如何动态地从基类创建派生类
例如,我有一个基类如下: class BaseClass(object): def __init__(self, classtype): self._type = classtype 从这个类中,我可以得出其他几个类,例如 class TestClass(BaseClass): def __init__(self): super(TestClass, self).__init__('Test') class SpecialClass(BaseClass): def __init__(self): super(TestClass, self).__init__('Special') 有没有一种不错的python方式通过函数调用动态创建这些类,该函数将新类放入我的当前作用域,例如: foo(BaseClass, "My") a = MyClass() ... 就像会有评论和疑问一样,为什么我需要这样做:派生类都具有完全相同的内部结构,不同之处在于,构造函数采用了许多以前未定义的参数。因此,举例来说,MyClass需要的关键字a,而类的构造函数TestClass需要b和c。 inst1 = MyClass(a=4) inst2 = MyClass(a=5) inst3 = TestClass(b=False, c = "test") 但是他们永远都不要使用类的类型作为输入参数,例如 inst1 = BaseClass(classtype = "My", a=4) 我使它起作用,但希望采用其他方式,即动态创建的类对象。

2
派生类中具有相同名称但签名不同的函数
我有一个同名的函数,但在基类和派生类中具有不同的签名。当我尝试在继承自派生类的另一个类中使用基类的函数时,收到错误消息。请参阅以下代码: class A { public: void foo(string s){}; }; class B : public A { public: int foo(int i){}; }; class C : public B { public: void bar() { string s; foo(s); } }; 我从gcc编译器收到以下错误: In member function `void C::bar()': no matching function for call to `C::foo(std::string&amp;)' candidates are: …

7
如何从扩展PHP类中的静态调用获取类名?
我有两节课:Action和MyAction。后者声明为: class MyAction extends Action {/* some methods here */} 我需要的只是Action类中的方法(仅在其中使用,因为会有很多继承的类,而且我不想在所有类中都实现此方法),它将从静态调用返回类名。这是我在说的: Class Action { function n(){/* something */} } 当我称它为: MyAction::n(); // it should return "MyAction" 但是父类中的每个声明只能访问父类__CLASS__变量,该变量的值为“ Action”。 有什么可行的方法吗?
91 php  oop  inheritance 

5
是否需要在派生类中实现所有虚拟功能?
这似乎是一个简单的问题,但在其他任何地方都找不到答案。 假设我有以下内容: class Abstract { public: virtual void foo() = 0; virtual void bar(); } class Derived : Abstract { public: virtual void foo(); } 派生类不实现bar()函数可以吗?如果不是,我的所有派生类都需要bar()函数,但是有些需要。是需要在派生类中实现抽象基类的所有虚函数,还是仅在纯虚函数中实现?谢谢
91 c++  inheritance 

3
何时在Scala特性中使用val或def?
我浏览了有效的scala幻灯片,并在幻灯片10中提到了永远不要val在trait抽象成员中使用def而是使用它。幻灯片没有详细说明为什么val在a中使用abstracttrait是反模式。如果有人可以解释在特征方法中使用val vs def的最佳实践,我将不胜感激

2
Python继承:TypeError:object .__ init __()不带参数
我收到此错误: TypeError: object.__init__() takes no parameters 在运行代码时,我在这里看不到自己在做什么错: class IRCReplyModule(object): activated=True moduleHandlerResultList=None moduleHandlerCommandlist=None modulename="" def __init__(self,modulename): self.modulename = modulename class SimpleHelloWorld(IRCReplyModule): def __init__(self): super(IRCReplyModule,self).__init__('hello world')

12
Java动态绑定和方法覆盖
昨天我接受了两个小时的技术电话面试(我通过了,woohoo!),但是我完全想出了以下有关Java动态绑定的问题。令人困惑的是,几年前我曾当过助教时曾向大学生教授这一概念,所以我给他们提供错误信息的前景有点令人不安... 这是给我的问题: /* What is the output of the following program? */ public class Test { public boolean equals( Test other ) { System.out.println( "Inside of Test.equals" ); return false; } public static void main( String [] args ) { Object t1 = new Test(); Object t2 = new Test(); …

9
Java错误:未为默认构造函数定义隐式超级构造函数
我有一些简单的Java代码,其结构与此类似: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String someString) { super(someString); } public String getName() { return "name value for ASubClass"; } } 我将有很多子类BaseClass,每个子类以getName()自己的方式(模板方法模式)实现方法。 这很好用,但是我不喜欢子类中有多余的构造函数。输入更多,难以维护。如果要更改BaseClass构造函数的方法签名,则必须更改所有子类。 当我从子类中删除构造函数时,出现此编译时错误: Implicit super constructor …


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.