黑马程序员技术交流社区

标题: 为什么会报错啊 [打印本页]

作者: 张涛的狂怒    时间: 2014-8-7 19:08
标题: 为什么会报错啊
本帖最后由 张涛的狂怒 于 2014-8-8 06:11 编辑

class A {
        void printA() {
                System.out.println("hello-------A");
        }
        abstract class A1 {
                public abstract void printA1();
        }
        interface B {
                public void printB();
        }
}
class X extends A {
        void printA() {
                System.out.println("hello-------A");
        }
        class M extends A1 {
                public void printA1() {
                        System.out.println("hello-------A1");
                }
        }
        class Y implements B {
                public void printB() {
                        System.out.println("hello-------B");
                }
        }
}
public class Demo2 {
        public static void main(String[] args) {
                A a = new X();
                a.printA();
                A.B b = new X.Y();
                b.printB();
                A.A1 a1 = new X.M();
                a1.printA1();
        }
}
作者: 执笔梦    时间: 2014-8-7 20:44
本帖最后由 执笔梦 于 2014-8-7 20:48 编辑

这看起来就心碎了,

不能直接new X.Y();这样创建内部类对象..要先创建外部类对象,
-----:改为的意思。
1,2代表方案。
1.
A.B b = new X.Y();  ----  A.B b = new X().new Y();
A.A1 a1 = new X.M();  ----- A.A1 a1 = new X().new M();

2.  A a = new X();  -----X a = new X();
         A.B b = a.new Y();
         A.A1 a1 = a.new M();     

版主给个分,好不好..:sleepy:

作者: 张涛的狂怒    时间: 2014-8-7 23:30
执笔梦 发表于 2014-8-7 20:44
这看起来就心碎了,

不能直接new X.Y();这样创建内部类对象..要先创建外部类对象,

哇塞,大神我怎么给你分啊。。。。。。




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