mik*_*era 10
即使您创建了一个接口,创建一个抽象基类通常也是有意义的,库的用户可以扩展该基类以实现该接口.
抽象基类可以提供方法的默认实现,以便您的库用户不需要自己创建它们.它还可以定义API用户在创建具体子类时必须实现的抽象方法.
public abstract class MyBaseClass implements MyInterface {
// abstract method
// anyone who extends must implement this
public abstract void myMethod1();
// default error implementation
// overriding is optional, but if used it will throw an error
public void myMethod2() {
throw new UnsupportedOperationException();
}
// default implementation that subclasses may find useful:
public void doBothMethods() {
myMethod1();
myMethod2();
}
}
Run Code Online (Sandbox Code Playgroud)