导语
没有方法的接口——标识接口。
主要内容
- 清楚对象克隆的操作结构
- 巩固接口的作用
具体内容
对象克隆
对象克隆指的就是对象的复制操作,在Object类里面提供有一个专门克隆的方法。
- 对象克隆:protected Object clone() throws CloneNotSupportedException。
此方法上抛出一个“CloneNotSupportedException”异常,如果要使用对象克隆的类没有实现Cloneable接口,那么就会抛出此异常。但是Cloneable接口看不见方法,此为标识接口,表示一种操作能力。
范例:实现克隆操作
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开发", 79.8);
Book bookB = bookA.clone();
bookB.setTitle("Android开发");
System.out.println(bookA);
System.out.println(bookB);
}
}
输出结果
书名:Java开发,价格:79.8。
书名:Android开发,价格:79.8。
对象的克隆操作,理论价值大于实际价值,因为在实际的工作里面很少会用到对象克隆 的操作。重点在于标识接口上,以后依然会见到没有方法的接口,这样的接口就好比通行证一样,表示的是能力。
总结
标识接口:没有任何方法定义,只是一个空接口的声明。