在java中,内部类是否可以从内部类外部类之外定义的抽象类继承?

时间:2011-05-09 06:22:27

标签: java abstract-class inner-classes

在java中,内部类是否可以从内部类外部类中定义的抽象类继承?

抽象类也可以实现构造函数吗?

2 个答案:

答案 0 :(得分:9)

两者都是。

例如,在内部类中扩展Swing Listener Adapter类是很常见的

你为什么不试试呢?

答案 1 :(得分:0)

你的意思是......

abstract public class Outer { 
 public Outer() { System.out.println("Outer.ctor"); }
 abstract public String foo(); 
}

public class Inner {
  public static class Inner2 extends Outer {
    public Inner2() { super(); }
    public String foo() { return "Inner2.foo";}
  }

  public static void main(String[] args) {
    System.out.println("main: " + new Inner2().foo());
  }
}

...

$ javac -d .  Outer.java Inner.java

$ java -cp . Inner
Outer.ctor
main: Inner2.foo

(对“super()”的多余调用仅仅是说明性的,并且不是必需的。)