中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

anonymousinnerclass怎么用

發布時間:2022-01-14 09:07:35 來源:億速云 閱讀:131 作者:iii 欄目:大數據

本文小編為大家詳細介紹“anonymousinnerclass怎么用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“anonymousinnerclass怎么用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

anonymousinnerclass(匿名內部類)是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?

匿名內部類在實現時必須借助一個接口或者一個抽象類或者一個普通類來構造,從這過層次上講匿名內部類是實現了接口或者繼承了類,但是不能通過extends或implement關鍵詞來繼承類或實現接口。

幾點說明:

一、由于匿名內部類沒有名字,所以它沒有構造函數。因為沒有構造函數,所以它必須完全借用父類的構造函數來實例化,匿名內部類完全把創建對象的任務交給了父類去完成。

二、在匿名內部類里創建新的方法沒有太大意義,但它可以通過覆蓋父類的方法達到神奇效果,如上例所示。這是多態性的體現。 

三、因為匿名內部類沒有名字,所以無法進行向下的強制類型轉換,持有對一個匿名內部類對象引用的變量類型一定是它的直接或間接父類類型。 

四、注意匿名內部類的聲明是在編譯時進行的,實例化在運行時進行。這意味著for循環中的一個new語句會創建相同匿名類的幾個實例,而不是創建幾個不同匿名類的一個實例。

class Car{
  void move(){};
}

interface Person{
  void learn();
}

abstract Class Animal{
  abstract void eat();
}

public class AnonymousInnerClassDemo {
  public static void main(String[] args){
     Car car = new Car(){
       void move(){
          System.out.println("匿名內部類的move()方法");
       }
     }
     car.move();
     
     Person person = new Person(){
       void learn(){
          System.out.println("匿名內部類的learn()方法");
       }
     }
     person.learn();
     
     Aninal animal = new Animal(){
        void eat(){
           System.out.println("匿名內部類的eat()方法");
        }
     }
  }
}

讀到這里,這篇“anonymousinnerclass怎么用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

竹溪县| 砀山县| 邢台县| 德化县| 潞城市| 贵港市| 泊头市| 阆中市| 平遥县| 九龙县| 玉龙| 永春县| 晴隆县| 离岛区| 上饶市| 苍梧县| 神木县| 巴楚县| 汽车| 中超| 隆子县| 西安市| 罗山县| 铜陵市| 绥化市| 竹北市| 镇坪县| 德州市| 东港市| 图木舒克市| 郑州市| 花莲市| 信丰县| 若羌县| 慈溪市| 阿图什市| 博爱县| 德化县| 吐鲁番市| 赤峰市| 勃利县|