天天看點

Java标示接口的介紹

标示接口(Mark Interface):

昨天午休的時候在寫《深拷貝淺拷貝》的時候,有用到了Cloneable的接口,就在想着,這類接口比較特殊,接口裡面沒有方法,不如寫一篇東西來介紹一下這類接口。

        Java标示接口是指:給某個類打上一個标記。比如我們的類需要有克隆、有序列化的功能,那我們直接去接上Cloneable、Serializable的接口就行,一個标記的意思,标示接口裡面是沒有方法的,畢竟隻是标示而已,沒什麼多深的意思,這點的設計就很OOP。

         常用的标示接口有:

  •          Cloneable:接上後的類擁有可克隆的功能屬性,支援執行個體化克隆;
  •          Serializable:接上後的類擁有可序列化的功能屬性,常用在對某對象的狀态進行儲存或者傳輸;
  •          RandomAccess:一般接上集合類,接上去後的集合類能快速通路,例如通過index通路資料

這裡呢,需要提到的點是,如果你接上了克隆的這個東西,你就必須去重寫Object的clone()方法,因為Object裡面的clone()是個protected的方法,是以也需要重載。

如果你重載但是沒有接上Cloneable,調用的時候會抛出CloneNotSupportedException 的異常,其他的标示接口也是一樣的。

對了,上面說的Cloneable想了解更深的東西可以看看我寫的這篇:

深拷貝淺拷貝

-------------呵呵分割線---------------      
Java标示接口的介紹