91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Java項目中使用標識接口

發布時間:2021-03-09 16:18:21 來源:億速云 閱讀:130 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關怎么在Java項目中使用標識接口,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一個用來表示萬事萬物的SomeThing

public interface SomeThing {}

人類的接口:

public interface Humans extends SomeThing{}

動物的接口:

public interface Animals extends SomeThing{}

然后是一系列的實現:

中國人:

public class Chinese implements Humans {}

日本人:

public class Japanese {}

狗:

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]);
    }
}

運行程序,你會發現輸出類似下面結果:

開了一槍!class springroad.demo.taginterface.Dog
開了一槍!class springroad.demo.taginterface.Japanese
開了一槍!class springroad.demo.taginterface.Japanese
開了一槍!class springroad.demo.taginterface.Hunter$1

由此可見,智能獵槍瞄準6個目標,開了4槍。只對Chinese、及Monster的實例沒有開槍。因為這里討論的是標簽接口,雖然Humans沒有任何方法,但從智能獵槍的角度來看,他就是通過這個標簽來判斷是否可以開火的。他不用管也管不了目標的層次等級關系(比如Japanese肯定很非常鮮明等級結構),即繼承關系。他也管不了目標的來自于哪兒。比如,是用new操作符創建,還是從容器中取,或者是從網絡某個地方加載一個。

Hunter只是制訂了一個簡單的規則,你要想不讓我的槍對你開火,你就必須在自己身上帖上一個Humans的標簽。也就是說你必須遵守這個規則。

現在回過頭來看,因為妖怪Monster真身應該是一條蛇或其它什么動物,但是他懂得Hunter制訂的規則,于在巧妙的給自己帖上了一個Humans的標簽,以致于欺騙了我們的智能獵槍。

而Japanese則自認為自己了不起,不按規則辦事,我就不理你Hunter制訂的規則,什么Humans標簽,我就是不用。于是放到我們的程序中當然就只有挨殺的份了。

關于怎么在Java項目中使用標識接口就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

喀喇沁旗| 溆浦县| 苍梧县| 同德县| 吐鲁番市| 伊金霍洛旗| 武胜县| 胶南市| 怀化市| 巴林左旗| 伊宁市| 竹溪县| 称多县| 上林县| 肥东县| 阳西县| 阿瓦提县| 葫芦岛市| 陆河县| 广南县| 健康| 方山县| 宣城市| 封开县| 都兰县| 丰台区| 金湖县| 泰兴市| 扎鲁特旗| 新巴尔虎右旗| 佛山市| 揭阳市| 延寿县| 二连浩特市| 隆尧县| 木里| 子长县| 蓬溪县| 昌邑市| 宁阳县| 嵩明县|