Nik*_*Nik 1 java abstract-class overriding abstract
我需要在现有的抽象类中添加一个可选方法,该类可以扩展50多个类:
public abstract class Animal{...}
Run Code Online (Sandbox Code Playgroud)
并非所有这些类都使用此方法,但是将来可能会使用。
我的课程之一的结构是:
public class Dog extends Animal {...}
Run Code Online (Sandbox Code Playgroud)
最干净的方法是使用abstractmethod,但它使我不得不更改所有现有的类。
解决方法是在abstract类中创建“空”方法:
public String getString(Map<String, Object> params){
return "";
}
Run Code Online (Sandbox Code Playgroud)
然后在需要扩展抽象类的类时覆盖它。
有更好的解决方案吗?
拥有“空”方法是好的。但是为了确保可以在真正需要它的地方实现,请考虑默认情况下从此方法引发异常:
throw new UnsupportedOperationException();
Run Code Online (Sandbox Code Playgroud)
在java.util.AbstractList课堂上使用了类似的方法:
public E set(int index, E element) {
throw new UnsupportedOperationException();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |