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

Java:如何强制给定的受保护方法被子类重载?

父亲班不是也不能抽象.
重载的方法是受保护的,因此接口不能在那里使用.

考虑到这两个限制是有可能吗?

解决方法

你不能强制该方法被覆盖 – 这是抽象方法(你所说的不是一个选项).

一种可能性是使基类中的方法抛出UnsupportedOperationException.然后,子类必须覆盖它,以防止抛出错误.这样,您至少可以检测到该方法是否已被覆盖.

例如:

public class Father {
    public void method ( ) {
        throw new UnsupportedOperationException( );
    }
}

public class Child1 extends Father {

}
public class Child2 extends Father {
    public void method ( ) {
        // Do something useful here...
    }
}

调用Child1.method()将抛出UnsupportedOperationException,表示它没有覆盖父的方法().调用Child2.method()不会抛出异常,这意味着它已经覆盖了method().

原文地址:https://www.jb51.cc/java/126510.html

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

相关推荐