Java_Day03 Java基礎

來源:互聯網
上載者:User

標籤:繼承 多態 super關鍵字 instanceof equals方法

1. 關於繼承的規則:子類不能繼承父類中私人的成員變數和方法


2. 覆蓋方法必須和被覆蓋方法具有相同的方法名、參數列表和傳回值類型,並且不能使用比被覆蓋方法更嚴格的訪問限制


3. super:是在子類對象方法中對父類對象的引用
    -使用:
      1) 在子類對象的方法中引用父類對象的成員
        public String getInfo(){
          return super.getInfo() + ", info" + info;
        }
      2) 在子類的構造器中調用父類的構造器
         - 可以在子類中通過 super(參數列表) 的方式來調用父類的構造器
         - 預設情況下子類的構造器調用父類的無參構造器
            public Person(){
              super();
            }
        - 若父類定義了帶參數的構造器,則系統將不再為父類提供無參構造器,而子類的構造器中必須調用父類的一個構造器,這時:
          ① 父類顯示的定義一個無參構造器
          ② 在子類的構造器中顯式的調用父類的帶參構造器
        - 與 this 類似, super(參數列表) 必須放在構造器的第一行,這說明 this(參數列表) 和 super(參數列表) 不能同時出現


4. 多態:同樣類型的變數,調用同樣的方法 卻產生完全不同的行為
    - 當父類的變數指向一個子類的對象,調用父類中已經被重寫的方法的時候
    - 在多態的情況下(當父類的變數指向一個子類的對象),不能調用子類新添加的方法
    - 在多態的情況下,可以對對象進行強制類型轉換
        1) 只有在具有父子關係的情況下才可以進行強制類型轉換
        2) 父類的對象可以轉換為任何子類的類型,但有可能會發生 java.lang.ClassCastException


5. instanceof 操作符:
    - x instanceof A 檢驗 x 是否為類 A 的對象,傳回值為 boolean 型。
    - 要求 x 所屬的類與類 A 必須是子類和父類的關係,否則編譯出錯


6. Java 的強制類型轉換:
    - 從子類到父類的類型可以自動進行
    - 父類到子類必須強制轉換
    - 無繼承關係的參考型別的轉換時非法的


7. equals 與 ==
    1) ==
        - 參考型別比較引用 (是否指向同一個對象)
        - 符號兩邊的資料類型必須可相容,否則編譯出錯
    2) equals()
        - 只能比較參考型別,其作用與 "==" 相同,比較是否指向同一個對象
        - 當用 equals() 方法進行比較時,對類 File、String、Date 及封裝類 (Wrapper Class) 來說是比較類型及內容二不考慮引用的是否是同一個對象,因為他們重寫了 equals() 方法


Java_Day03 Java基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.