Java標(biāo)識接口的使用方法
標(biāo)識接口是沒有任何方法和屬性的接口。標(biāo)識接口不對實現(xiàn)它的類有任何語義上的要求,它僅僅表明實現(xiàn)它的類屬于一個特定的類型。
標(biāo)接口在Java語言中有一些很著名的應(yīng)用,比如java.io.Serializable和java.rmi.Remote等接口便是標(biāo)識接口。標(biāo)識接口,當(dāng)一個類實現(xiàn)了一個標(biāo)識接口之后就像是給自己打了個標(biāo)簽。
為此,我們使用了下面三個接口:
一個用來表示萬事萬物的SomeThing
public interface SomeThing {}人類的接口:
public interface Humans extends SomeThing{}動物的接口:
public interface Animals extends SomeThing{}然后是一系列的實現(xiàn):
狗:
public class Dog implements Animals {}妖怪(他很聰明,給自己帖上了人的標(biāo)簽):
public class Monster implements Humans {}下面這個程序的核心部分,獵人類及客戶端程序:
public class Hunter{
public void fire(Object target)
{
if(target instanceof Humans){
System.out.println("這下完了,打中了");
}else{
System.out.println("恭喜你,打中了一只動物!");
}
}
//智能的槍
public void intelligentFire(Object target)
{
if(target instanceof Humans){
return;
}
System.out.println("開了一槍!"+target.getClass());
//下面進行秒殺等相關(guān)處理
//銷毀他
target=null;
}
public static void main(String[] args) {
Hunter hunter=new Hunter();
Object[]
objects =new Object[]{new Dog(),new Japanese(),new Japanese(),new Chinese(),new Monster(),new SomeThing(){}};
for(int i=0; i<objects.length; i++){
hunter.intelligentFire(objects[i]);
}
}我就不理你Hunter制訂的規(guī)則,什么Humans標(biāo)簽,我就是不用。于是放到我們的程序中當(dāng)然就只有挨打的份了。
由此可見,空接口(標(biāo)簽接口)的重要性,在像本例中,給不給自己帖上標(biāo)簽,這是一個性命莜關(guān)的問題。其實在OO的世界中,空接口可以算是最高的層像。
相關(guān)文章
Java請求Http接口OkHttp超詳細(xì)講解(附帶工具類)
這篇文章主要給大家介紹了關(guān)于Java請求Http接口OkHttp超詳細(xì)講解的相關(guān)資料,OkHttp是一款優(yōu)秀的HTTP客戶端框架,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
Java中復(fù)雜的Synchronized關(guān)鍵字使用方法詳解
Synchronized關(guān)鍵字是一個種鎖,其有很多名字,例如重量級鎖、悲觀鎖、可重入鎖、、非公平、對象鎖等等,這篇文章主要給大家介紹了關(guān)于Java中復(fù)雜的Synchronized關(guān)鍵字使用方法的相關(guān)資料,需要的朋友可以參考下2024-01-01
Springboot整合Netty自定義協(xié)議實現(xiàn)示例詳解
這篇文章主要為大家介紹了Springboot整合Netty自定義協(xié)議實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
java開發(fā)RocketMQ消息中間件原理基礎(chǔ)詳解
最近 RocketMQ 剛剛上生產(chǎn)環(huán)境,閑暇之時在這里做一些分享,主要目的是讓初學(xué)者能快速上手RocketMQ,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
Java String字符串補0或空格的實現(xiàn)代碼
這篇文章主要介紹了Java String字符串補0或空格的實現(xiàn)代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-09-09
Java弱鍵集合WeakHashMap及ConcurrentCache原理詳解
這篇文章主要介紹了Java弱鍵集合WeakHashMap及ConcurrentCache原理詳解,基于哈希表的Map接口實現(xiàn),支持null鍵和值,但是WeakHashMap具有弱鍵,可用來實現(xiàn)緩存存儲,在進行GC的時候會自動回收鍵值對,需要的朋友可以參考下2023-09-09

