Java 8新特性——default方法(defender方法)介紹
我們都知道在Java語言的介面中只能定義方法名,而不能包含方法的具體實現程式碼。介面中定義的方法必須在介面的非抽象子類中實現。下面就是關於介面的一個例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public
interface
SimpleInterface {
public
void
doSomeWork();
}
class
SimpleInterfaceImpl implements
SimpleInterface{
@Override
public
void
doSomeWork() {
System.out.println( "Do
Some Work implementation in the class" );
}
public
static
void
main(String[] args) {
SimpleInterfaceImpl
simpObj = new
SimpleInterfaceImpl();
simpObj.doSomeWork();
}
}
|
那麼,如果我們在SimpleInterface裡面新增一個新方法,會怎樣呢?
1 2 3 4 |
public
interface
SimpleInterface {
public
void
doSomeWork();
public
void
doSomeOtherWork();
}
|
如果我們嘗試編譯上面的這段程式碼,會得到如下結果:
1 2 3 4 5 6 |
$javac
.\SimpleInterface.java .\SimpleInterface.java:18:
error: SimpleInterfaceImpl is not abstract and does not
override
abstract method doSomeOtherWork() in
SimpleInterface
class
SimpleInterfaceImpl implements SimpleInterface{
^
|