Java標識接口的使用方法
標識接口是沒有任何方法和屬性的接口。標識接口不對實現(xiàn)它的類有任何語義上的要求,它僅僅表明實現(xiàn)它的類屬于一個特定的類型。
標接口在Java語言中有一些很著名的應(yīng)用,比如java.io.Serializable和java.rmi.Remote等接口便是標識接口。標識接口,當(dāng)一個類實現(xiàn)了一個標識接口之后就像是給自己打了個標簽。
為此,我們使用了下面三個接口:
一個用來表示萬事萬物的SomeThing
public interface SomeThing {}人類的接口:
public interface Humans extends SomeThing{}動物的接口:
public interface Animals extends SomeThing{}然后是一系列的實現(xiàn):
狗:
public class Dog implements Animals {}妖怪(他很聰明,給自己帖上了人的標簽):
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標簽,我就是不用。于是放到我們的程序中當(dāng)然就只有挨打的份了。
由此可見,空接口(標簽接口)的重要性,在像本例中,給不給自己帖上標簽,這是一個性命莜關(guān)的問題。其實在OO的世界中,空接口可以算是最高的層像。
相關(guān)文章
Java動態(tài)線程池插件dynamic-tp集成zookeeper
ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn),是Hadoop和Hbase的重要組件。它是一個為分布式應(yīng)用提供一致性的軟件,提供的功能包括:配置維護、域名服務(wù)、分布式同步、組服務(wù)等2023-03-03
EasyExcel工具讀取Excel空數(shù)據(jù)行問題的解決辦法
EasyExcel是阿里巴巴開源的一個excel處理框架,以使用簡單,節(jié)省內(nèi)存著稱,下面這篇文章主要給大家介紹了關(guān)于EasyExcel工具讀取Excel空數(shù)據(jù)行問題的解決辦法,需要的朋友可以參考下2022-08-08
基于Mybatis實現(xiàn)CRUD操作過程解析(xml方式)
這篇文章主要介紹了基于Mybatis實現(xiàn)CRUD操作過程解析(xml方式),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
Mybatis傳單個參數(shù)和<if>標簽同時使用的問題及解決方法
這篇文章主要介紹了Mybatis傳單個參數(shù)和<if>標簽同時使用的問題及解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-05-05
Mybatis(ParameterType)傳遞多個不同類型的參數(shù)方式
這篇文章主要介紹了Mybatis(ParameterType)傳遞多個不同類型的參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
Java Fluent Mybatis 項目工程化與常規(guī)操作詳解流程篇 下
Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內(nèi)又以Mybatis用的多,基于mybatis上的增強框架,又有mybatis plus和TK mybatis等。今天我們介紹一個新的mybatis增強框架 fluent mybatis關(guān)于項目工程化與常規(guī)操作流程2021-10-10

