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

前端之家收集整理的这篇文章主要介绍了Java:如何强制给定的受保护方法被子类重载?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
父亲班不是也不能抽象.
重载的方法是受保护的,因此接口不能在那里使用.

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

解决方法

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

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

例如:

  1. public class Father {
  2. public void method ( ) {
  3. throw new UnsupportedOperationException( );
  4. }
  5. }
  6.  
  7. public class Child1 extends Father {
  8.  
  9. }
  10. public class Child2 extends Father {
  11. public void method ( ) {
  12. // Do something useful here...
  13. }
  14. }

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

猜你在找的Java相关文章