A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈泽鑫 中级黑马   /  2012-12-9 20:59  /  1655 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈泽鑫 于 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{
    }
}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

3 个回复

正序浏览
他、他、他……
我又晚了一步
回复 使用道具 举报
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
        {
        }
   

}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
interface class inner2?
接口类?关键字 interface class不能并存吧。

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



评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马