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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张涛的狂怒 中级黑马   /  2014-8-7 19:08  /  1327 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张涛的狂怒 于 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();
        }
}

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 记得添加报错信息哈

查看全部评分

2 个回复

倒序浏览
本帖最后由 执笔梦 于 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:

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 好!付出了就有回报

查看全部评分

回复 使用道具 举报
执笔梦 发表于 2014-8-7 20:44
这看起来就心碎了,

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

哇塞,大神我怎么给你分啊。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马