java中三大基本特征


java中的面向對象的三大基本特征是:【封裝】、【繼承】、【多態

封裝:對象要有一個明確的邊界;邊界的划分(對象各司其職、對象的粒度、對象的可重用性)

  • 屬性(bean、pojo):私有的private,有set和get方法
  • 方法:公開或私有 ,public/private
  • 方法聲明和實現(interface,implements)

繼承:共性放到父類,特性放到子類;父類 --> 子類 --> 一般

  • 關鍵字: extends
  • java中一個類最多只能有一個直接的父類,即單繼承(具有簡單性、樹形結構)              tip:java中要實現多繼承,通過接口來實現。
  • 父類中所有屬性和方法都能繼承給子類;父類中的私有方法不能繼承給子類。
  • java中的訪問修飾符
    訪問修飾符 訪問權限 繼承
    private 本類 不能繼承
    default 本類+同包 同包子類可以繼承
    protected 本類+同包+不同子包 可以繼承
    public 公開 可以繼承

 

    • 構造對象過程

     (1)分配空間
       (2)遞歸地構造父類對象
              a. 父類 初始化屬性
              b. 父類 構造方法
      (3)初始化屬性
      (4)調用構造方法

  • super
          super()  調用父類的構造方法,只能出現在構造方法的第一行
          super.方法名   super表示父類的對象,通過它去調用父類的方法
          注意:在寫類的時候,一定要寫默認無參的構造方法,如果一個構造方法的
                   第一句既不是this(),也不是super()時,那么就會在這里隱含的調用
                   他的父類的無參的構造方法,即隱含的有super()。

 

多態:運行時多態(子類的對象放在父類的引用中,例如 Animal a=new Dog,子類對象當父類對象來使用。)

 

    • 多態原則:
             (1)對象類型不變
             (2)只能用引用調用其引用類型中定義的方法
             (3)運行時,根據對象的實際類型去找子類覆蓋之后的方法
                   例子:
                        有Animal類中有eat()和sleep()兩個方法,sleep()中睡8小時;子類Dog中有
                        eat()方法,sleep()方法中睡6小時,還有wangwang()方法。
                        現創建Animal a=new Dog(); 不能調用a.wangwang(),調用a.sleep()輸出睡6小時。
    • 對象的強制轉換 :
                         格式: 引用 instanceof 類型
                              引用所指的對象是否與類相符,返回值boolean值。
                       用法:
                             Animal a=new Cat();
                             if(a instanceof Dog)
                             {
                                Dog d=(Dog)a;
                                d.wangwang();
                              }
                       說明:如果只有Dog d=(Dog)a;運行時錯誤,因為a是Cat而不是Dog (多態原則第一條)
    • 多態的靈活變換
             (1)用於參數列表上:
                                     public void m(A a){} 可以用A類的任何子類對象作為參數
              (2)用在返回值上:
                                    public A m(){}  這個方法可能返回A類的任何子類對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM