java - 在这儿并没有申明FU为Demo的父类,为什么还是可以继承重写呢
迷茫
迷茫 2017-04-18 10:53:47
0
3
464
//此处用了匿名内中类
    abstract class Fu
    {
        public abstract void sleep();
    }
    class Demo
    {    
        public void fun()
        {
        //创建匿名对象,可以使用匿名类中类
            new Fu()
            {
            public void sleep()
                {
                System.out.println("睡觉");
                }
            public void eat()
                {
                System.out.println("吃饭");
                }
            
            }
            .sleep();
    //创建匿名对象
            new Fu()
            {
            public void sleep()
                {
                System.out.println("睡觉");
                }
            public void eat()
                {
                System.out.println("吃饭");
                }
            
            }
            .eat();
            
        }
    }
    class Demonmnbl1 
    {
        public static void main(String[] args) 
        {
            Demo de1 = new Demo();
            de1.fun();
        }
    }
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(3)
Peter_Zhu

これは Demo によって書き換えられるのではなく、内部の 2 つの匿名サブクラスによって書き換えられます。 。デモは呼び出しを担当するだけです

いいねを押す +0
阿神

デモは抽象クラスを継承しません。 Fu クラスのインスタンスのみが含まれます。

JAVA を使用したことがありません。抽象クラスはどのようにインスタンス化できますか?これが不思議なことだ。

new Fu() は何か = new Fu() を継承する匿名オブジェクトと同等であるべきだと思います。これが OOP におけるポリモーフィズムです。

いいねを押す +0
刘奇

匿名内部クラスを定義すると、JVM は自動的に匿名クラスを生成します。これは、JVM にとってはもちろん匿名ではありませんが、ユーザーはそれを知っています。ユーザーはこのクラスにアクセスできません。このクラスは新しいクラスまたはインターフェイスのサブクラスまたは実装クラスであり、その参照は親クラスまたはインターフェイスです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート