>  Q&A  >  본문

java - 在这儿并没有申明FU为Demo的父类,为什么还是可以继承重写呢

//此处用了匿名内中类
    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();
        }
    }
迷茫迷茫2743일 전425

모든 응답(3)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-18 10:55:47

    Demo가 아니라 내부의 두 익명 하위 클래스에 의해 다시 작성되었습니다. . 데모는 전화만 담당합니다

    회신하다
    0
  • 阿神

    阿神2017-04-18 10:55:47

    데모는 추상 클래스를 상속하지 않습니다. Fu 클래스의 인스턴스만 포함합니다.

    JAVA를 사용해 본 적이 없는데 어떻게 추상 클래스를 인스턴스화할 수 있나요? 이것이 이상한 것입니다.

    new Fu()는 Fu를 상속하는 익명 개체 = new Fu()와 동일해야 한다고 생각합니다. 이것이 OOP의 다형성입니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-18 10:55:47

    익명 내부 클래스를 정의하면 JVM이 자동으로 클래스를 생성하는데, 이는 실제로 JVM의 경우 익명이 아닙니다. 사용자는 그렇지 않으며 이 클래스에 액세스할 수 없습니다. 이 A 클래스는 새 클래스 또는 인터페이스의 하위 클래스 또는 구현 클래스이며 해당 참조는 상위 클래스 또는 인터페이스입니다.

    회신하다
    0
  • 취소회신하다