黑马程序员技术交流社区

标题: 两个内部类的问题 [打印本页]

作者: 陈泽鑫    时间: 2012-12-9 20:59
标题: 两个内部类的问题
本帖最后由 陈泽鑫 于 2012-12-10 12:17 编辑

public class Outer {
    Outer(int x,String y){}

//  问题一:
    class inner1{
        inner1(int x,String y){
            super();
//            super(x,y);// 为什么内部类不能调用外部类有参构造方法
        }
    }
//  问题二:
    //    interface class inner2{// 为什么内部类可以是抽象类但不能定义为接口类
    abstract class inner2{
    }
}
作者: 但汉涛    时间: 2012-12-9 22:02
interface class inner2?
接口类?关键字 interface class不能并存吧。

super(x,y);// 为什么内部类不能调用外部类有参构造方法
内部类可以调用有参数构造方法。
super(x,y)真没有见过这么用的。
还有内部类之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式 外部类名.this
super是子类访问父类。




作者: xjandrew    时间: 2012-12-9 22:12
public class Outer
{
    Outer(int x,String y){}
    class inner1
    {
        inner1(int x,String y)
        {
            new Outer(2,"3");//外部构造方法只能new,不能直接调用
                //super();
            //super(3,"4");// 为什么内部类不能调用外部类有参构造方法/答:super()用来调用父类方法,
                                                                   而该内部类的父类为Object.
                                                                                                     当然Object类中并没有有参构造方法
        }
    }
    interface  inner2
    {
            // 为什么内部类可以是抽象类但不能定义为接口类
          //内部类可以是接口,我定义的inner2、 inner3都没报错,恐怕是你书写格式错了
    }
        abstract class inner3
        {
        }
   

}

作者: xjandrew    时间: 2012-12-9 23:31
他、他、他……
我又晚了一步




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