简体   繁体   English

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

[英]In java can inner classes inherit from an abstract class defined outside of the inner class's outer class?

In java can inner classes inherit from an abstract class defined outside of the inner class's outer class? 在java中,内部类是否可以从内部类外部类之外定义的抽象类继承?

Also can abstract classes implement constructors? 抽象类也可以实现构造函数吗?

Yes to both. 对两者都是。

For example it is quite common to extend Swing Listener Adapter classes in inner classes 例如,在内部类中扩展Swing Listener Adapter类是很常见的

Why didn't you just try it? 你为什么不试试呢?

Do you mean... 你的意思是...

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

(The superfluous calls to "super()" are merely illustrative, & are not necessary.) (对“super()”的多余调用仅仅是说明性的,并非必要。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM