我需要在现有抽象类中添加一个可选方法,该抽象类由 50 多个类扩展:
public abstract class Animal{...}
并非所有这些类都使用此方法,但将来可能会使用。
我的一个类(class)的结构是:
public class Dog extends Animal {...}
最干净的方法是使用abstract
方法,但它迫使我更改所有现有的类。
解决方法是在abstract
类中创建“空”方法:
public String getString(Map<String, Object> params){
return "";
}
然后当我需要扩展抽象类的类时重写它。
有没有更好的解决办法?
最佳答案
有一个“空”方法就可以了。但为了确保它将在真正需要的地方实现,请考虑默认从此方法抛出异常:
throw new UnsupportedOperationException();
java.util.AbstractList
中使用了类似的方法类:
public E set(int index, E element) {
throw new UnsupportedOperationException();
}
关于java - 抽象方法与空方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118777/