由於InnerClass
是non static
您需要一個OuterClass
的實例來訪問它。接下來,因爲它是抽象類,你需要一個實際上可以創建的實例的子類。從子類中,您可以使用super調用超類方法。我能想到的
一種方法是
public class HelloWorld {
public static void main(String args[]) {
OuterClass outerClass = new OuterClass();
InnerSubClass myInstance = outerClass.new InnerSubClass();
myInstance.print();
}
}
class OuterClass {
private InnerSubClass myInstance;
abstract class InnerClass {
int value = 20;
public void print(){
System.out.println("Value = " + getValue());
}
public abstract int getValue();
}
class InnerSubClass extends InnerClass{
@Override
public void print(){
super.print();
System.out.println("In SUbclass");
}
@Override
public int getValue() {
return 0;
}
}
}
你不能調用一個抽象類的方法,除非它是靜態 – alfasin
向外部類的實例來創建這個抽象內部類的具體實例,並返回它,然後在返回的對象上調用該方法。 –