java如何在子类中获取超类引用

时间:2014-05-09 10:27:22

标签: java subclass superclass

我有3个班级:

class Superclass ...

public class Generic{
     public Generic(Superclass s){...}
}

扩展Superclass的子类

class SubClass extends Superclass{
      public void methodM(){
           Generic g = new Generic(???);
           ...
      }
}

methodM中我使用构造函数Generic,我想传递对Subclass扩展的Superclass实例的引用。所以我不想做new Generic(new Superclass)之类的事情,而是像new Generic(super.IdontKnowWhat)

这样的事情

谢谢

3 个答案:

答案 0 :(得分:1)

对当前对象的引用也隐含地引用了超类(因为它扩展了它)。

所以你应该能够做到

 Generic g = new Generic(this);

答案 1 :(得分:0)

只需将其称为super.parameter,因为super是用于引用超类字段的内置关键字。您可以在the java docs tutorial for super中了解super

答案 2 :(得分:0)

U可以传递子类的引用,因为它扩展了超类。 但这取决于你想要什么样的方法。如果你传递子类的引用那么你应该通过Generic类的构造函数中接收的对象来讨论子类的方法。 所以你应该构建超类的新对象,以防你想要超级类的方法。