黑马程序员技术交流社区

标题: java内部类可不可以继承内部类怎么实现 [打印本页]

作者: 欧阳超    时间: 2011-10-7 11:55
标题: java内部类可不可以继承内部类怎么实现
java内部类可不可以继承内部类怎么实现
作者: 宁超    时间: 2011-10-7 12:11
可以实现。
  1. public class OutClass {

  2. class InterClass{
  3.   private String name;
  4.   public InterClass(String name){
  5.    this.name=name;
  6.   }
  7. }
  8. }
  9. class OutClass1 {

  10. class InterClass1 extends OutClass.InterClass {

  11.   public InterClass1(OutClass outClass, String name) {
  12.    outClass.super(name);
  13.   }
  14.   
  15. }
  16. }

复制代码

作者: 王春艳    时间: 2011-10-7 12:13
可以
public class First {
        class ClassFirst extends Second.ClassS{
        public ClassFirst(Second s){
                s.super();
                }
        }
}

        class Second{
                class ClassS{
                public ClassS(){}
                }
}
是这意思吧
作者: 张雷    时间: 2011-10-7 16:56
可以的,希望对你有帮助
因为内部类的构造器要用到其外围类对象的引用,所以在你继承一个内部类的时候,事情变得有点复杂。问题在于,那个“秘密的”外围类对象的引用必须被初始化,而在被继承的类中并不存在要联接的缺省对象。要解决这个问题,需使用专门的语法来明确说清它们之间的关联:  
class WithInner {  
    class Inner {  
        Inner(){  
           System.out.println("this is a constructor in WithInner.Inner");  
        };  
    }  
}  
   
public class InheritInner extends WithInner.Inner {  
    // ! InheritInner() {} // Won’t compile  
    InheritInner(WithInner wi) {  
        wi.super();  
        System.out.println("this is a constructor in InheritInner");  
    }  
   
    public static void main(String args) {  
        WithInner wi = new WithInner();  
        InheritInner ii = new InheritInner(wi);  
    }  
}  
   
输出结果为:  
this is a constructor in WithInner.Inner  
this is a constructor in InheritInner  
   
可以看到,InheritInner 只继承自内部类,而不是外围类。但是当要生成一个构造器时,缺省的构造器并不算好,而且你不能只是传递一个指向外围类对象的引用。此外,你必须在构造器内使用如下语法:  
enclosingClassReference.super();  
这样才提供了必要的引用,然后程序才能编译通过。
作者: 王家俊    时间: 2011-10-7 23:27
可以的,格式是:
class OutOne{
        class InnerOne extends OutTwo.InnerTwo{}
}
calss OutTwo{
   class InnerTwo{}
}
只需指明继承谁的外部类的内部类就可以了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2