标示接口(Mark Interface):
昨天午休的時候在寫《深拷貝淺拷貝》的時候,有用到了Cloneable的接口,就在想着,這類接口比較特殊,接口裡面沒有方法,不如寫一篇東西來介紹一下這類接口。
Java标示接口是指:給某個類打上一個标記。比如我們的類需要有克隆、有序列化的功能,那我們直接去接上Cloneable、Serializable的接口就行,一個标記的意思,标示接口裡面是沒有方法的,畢竟隻是标示而已,沒什麼多深的意思,這點的設計就很OOP。
常用的标示接口有:
- Cloneable:接上後的類擁有可克隆的功能屬性,支援執行個體化克隆;
- Serializable:接上後的類擁有可序列化的功能屬性,常用在對某對象的狀态進行儲存或者傳輸;
- RandomAccess:一般接上集合類,接上去後的集合類能快速通路,例如通過index通路資料
這裡呢,需要提到的點是,如果你接上了克隆的這個東西,你就必須去重寫Object的clone()方法,因為Object裡面的clone()是個protected的方法,是以也需要重載。
如果你重載但是沒有接上Cloneable,調用的時候會抛出CloneNotSupportedException 的異常,其他的标示接口也是一樣的。
對了,上面說的Cloneable想了解更深的東西可以看看我寫的這篇:
深拷貝淺拷貝
-------------呵呵分割線---------------