Java標識接口的使用方法
標識接口是沒有任何方法和屬性的接口。標識接口不對實現它的類有任何語義上的要求,它僅僅表明實現它的類屬于一個特定的類型。
標接口在Java語言中有一些很著名的應用,比如java.io.Serializable和java.rmi.Remote等接口便是標識接口。標識接口,當一個類實現了一個標識接口之后就像是給自己打了個標簽。
為此,我們使用了下面三個接口:
一個用來表示萬事萬物的SomeThing
public interface SomeThing {}人類的接口:
public interface Humans extends SomeThing{}動物的接口:
public interface Animals extends SomeThing{}然后是一系列的實現:
狗:
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());
//下面進行秒殺等相關處理
//銷毀他
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標簽,我就是不用。于是放到我們的程序中當然就只有挨打的份了。
由此可見,空接口(標簽接口)的重要性,在像本例中,給不給自己帖上標簽,這是一個性命莜關的問題。其實在OO的世界中,空接口可以算是最高的層像。
相關文章
Java請求Http接口OkHttp超詳細講解(附帶工具類)
這篇文章主要給大家介紹了關于Java請求Http接口OkHttp超詳細講解的相關資料,OkHttp是一款優(yōu)秀的HTTP客戶端框架,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下2024-02-02
Java弱鍵集合WeakHashMap及ConcurrentCache原理詳解
這篇文章主要介紹了Java弱鍵集合WeakHashMap及ConcurrentCache原理詳解,基于哈希表的Map接口實現,支持null鍵和值,但是WeakHashMap具有弱鍵,可用來實現緩存存儲,在進行GC的時候會自動回收鍵值對,需要的朋友可以參考下2023-09-09

