導語
沒有方法的接口——標識接口。
主要內容
- 清楚對象克隆的操作結構
- 鞏固接口的作用
具體內容
對象克隆
對象克隆指的就是對象的復制操作,在Object類里面提供有一個專門克隆的方法。
- 對象克隆:protected Object clone() throws CloneNotSupportedException。
此方法上拋出一個“CloneNotSupportedException”異常,如果要使用對象克隆的類沒有實現(xiàn)Cloneable接口,那么就會拋出此異常。但是Cloneable接口看不見方法,此為標識接口,表示一種操作能力。
范例:實現(xiàn)克隆操作
public class Book implements Cloneable { // 此類的對象可以被克隆
private String title;
private double price;
public Book(String title, double price) {
this.title = title;
this.price = price;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
reture "書名:" + this.title + ",價格:" + this.price + "。";
}
// 由于此類需要對象克隆操作,所以才需要進行方法的覆寫
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone(); // 調用父類的克隆方法
}
}
public class TestDemo {
public static void main(String args[]) throws Exception {
Book bookA = new Book("Java開發(fā)", 79.8);
Book bookB = bookA.clone();
bookB.setTitle("Android開發(fā)");
System.out.println(bookA);
System.out.println(bookB);
}
}
輸出結果
書名:Java開發(fā),價格:79.8。
書名:Android開發(fā),價格:79.8。
對象的克隆操作,理論價值大于實際價值,因為在實際的工作里面很少會用到對象克隆 的操作。重點在于標識接口上,以后依然會見到沒有方法的接口,這樣的接口就好比通行證一樣,表示的是能力。
總結
標識接口:沒有任何方法定義,只是一個空接口的聲明。