重写子类中的抽象方法

Overriding the abstract methods in the subclass

我有两个类,ClassTest2有2个抽象方法和1个非抽象方法。

Class Test3调用了Test2的Cat(),实现了两个Test2抽象方法。 我的问题是,如果我不向 Test3 中的抽象方法添加任何主体,我是否重写了这些方法?我没有实现Dog()和Bird(),那为什么Test3可以编译运行?

谢谢

abstract public class Test2 
{
      abstract public void Dog();
      abstract public void Bird();
       
       public static void Cat()
       {
           System.out.println("Meow");                        
       }
}


public class Test3 extends Test2
{
    @Test
    public void Play()
    {
        Cat();
    }

    @Override
    public void Dog() {
        // TODO Auto-generated method stub
    
    }

    @Override
    public void Bird() {
        // TODO Auto-generated method stub
    
    }
}

您的抽象方法是无效的,因此 return 什么都没有,编译器期望该方法 return 什么都没有,并且通过添加大括号您已经定义了 body; body 只是空的。

这类似于当你实现一个接口时,编译器唯一关心的是你是否履行了契约。