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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

心血来潮写了三个代码,发现颠覆了好多概念

4 个回复

倒序浏览

class A
{
}
class B
{
}
class C extends A
{
        class D extends B    //该代码是可以编译通过的,也就是说依靠内部类的嵌套可以做到让classD同时实现继承A与B的伪多继承,相对来说这和D直接继承A与B差别不大..
        {

        }
}


class  Duojicheng
{
        public static void main(String[] args)
        {
                //System.out.println("Hello World!");
        }
}

回复 使用道具 举报
abstract class A
{
        public abstract void cs();
       
                abstract class C
                {
                       
                        void xiu()
                        {
                                System.out.println("C调用成功");
                        }
                }
                                       

        class D extends C
        {
               
        }

}


class B extends A
{
        public void cs(){}

                class E extends C
                {
                        void zs()
                        {
                                super.xiu();
                        }
                }
}

class  Ceshi
{
        public static void main(String[] args)
        {
                B.E b = new B().new E();
                b.xiu();
        }
}
//此段代码实现了抽象类的抽象内部类中方法的调用,此段代码可以编译通过,并有运行结果.也就是说JAVA支持嵌套继承...

回复 使用道具 举报
class A
{
        class B
        {
                void show()
                {
                        System.out.println("调用成功");
                }
        }
}

class C extends B
{
        void xiu()
        {
                System.out.println("子类调用成功");
        }

}


class  Ceshi2
{
        public static void main(String[] args)
        {
                //System.out.println("Hello World!");
                C c = new C();
                c.xiu();
                c.show();
        }
}
//此段代码是无法编译通过的,会提示c.show()找不到符号,然而注释掉c.show()以后此段代码可以通过编译,那么问题来了,既然已经实现了继承,为何子类无法调用父类方法?

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