8.接口與多態

抽象類

  1. 有些類不該被初始化(例如Animal,因為現實中沒有Animal對象存在),為了防止Animal類被初始化,可以將其標記為抽象類——在類的聲明前面加上抽象類關鍵詞abstract


  2. 具體類——非抽象的類就是具體類
  3. 抽象的方法——除了類之外,也可以將方法標記成抽象的,抽象方法必須被覆蓋過才能調用,抽象方法沒有方法體——publicabstractvoideat();//沒有{}
    如果要聲明出一個抽象的方法,就必須將類也標記為抽象的,不能在非抽象類中擁有抽象方法
    必須實現所有抽象的方法——這表示在繼承樹下的第一個具體類必須要實現出所有的抽象方法
  4. Object類是所有類的父類
    每個對象都擁有的方法(可覆蓋)
    A.equals(Objecto)——判斷兩個對象是否相等
    B.getClass()——告訴你該對象是什么類(從哪里被初始化的)
    C.hashCode()——列出該對象的哈希代碼(對象唯一的ID)
    D.toString()——列出類的名稱和一串我們不關心的數字
    任何從ArrayList<Object>取出的東西都會被當作Object類型的引用而不管它原來是什么
    當一個變量被聲明為Object類型的對象所引用時,它無法再賦值給原來類型的變量
    編譯器是根據引用類型(而不是對象類型)來判斷有哪些method可以調用



    o作為Object的引用,只能調用Object的方法,而不能調用bark()方法
    越處于繼承樹的下端,遙控器的按鈕(引用)越多,Object引用的對象按鈕最少
    如果想要調用Dog類的方法,可以從Object中拷貝出一個Dog引用,并賦值給Dog引用變量

接口

使用接口的目的:接口可以實現多重繼承又不會出現致命方塊的問題
實現方法:把全部的方法設置為抽象的(接口就像是100%純天然抽象類)
接口的定義:publicinterfacePet{...};
接口的實現:publicclassDogextendsCanineimplementsPet{...};
不同繼承樹的類也可以實現相同的接口
類可以實現多個接口
接口的方法都是publicabstract的(默認的)
要從子類調用父類的方法可以用super關鍵字

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.import static是Java 5增加的功能,就是將Import類中的靜態方法,可以作為本類的靜態方法來...
    XLsn0w閱讀 1,261評論 0 2
  • 面向對象主要針對面向過程。 面向過程的基本單元是函數。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,082評論 0 4
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,739評論 18 399
  • 具體說明 參考http://mirrors.163.com/
    浮崖閱讀 314評論 0 0
  • //以””為分界將字符拆分為2個str = @“26_1”;NSString *bloggerID = [str...
    onlyyourself閱讀 214評論 0 0