微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

覆盖子类中的抽象方法

如何解决覆盖子类中的抽象方法

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

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
    
    }
}

解决方法

您的抽象方法无效,因此不返回任何内容,编译器希望该方法不返回任何内容,并通过添加已定义主体的花括号来实现;身体只是空的。

这类似于实现接口时,编译器唯一关心的就是您已履行合同。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。