我有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)
谢谢
答案 0 :(得分:1)
对当前对象的引用也隐含地引用了超类(因为它扩展了它)。
所以你应该能够做到
Generic g = new Generic(this);
答案 1 :(得分:0)
只需将其称为super.parameter
,因为super是用于引用超类字段的内置关键字。您可以在the java docs tutorial for super中了解super
。
答案 2 :(得分:0)
U可以传递子类的引用,因为它扩展了超类。 但这取决于你想要什么样的方法。如果你传递子类的引用那么你应该通过Generic类的构造函数中接收的对象来讨论子类的方法。 所以你应该构建超类的新对象,以防你想要超级类的方法。