1. 程式人生 > 其它 >Java基礎——面向物件2

Java基礎——面向物件2

Java基礎——面向物件2

繼承

子類無法使用父類的私有屬性或方法

Java中只有單繼承,沒有多繼承

Ctrl + h 開啟繼承樹

在Java中,所有的類,都預設直接或間接繼承Object類

new子類時,呼叫子類的構造器,預設且必須呼叫父類的構造器(即super()必須在第一行)

super注意點:
1. super呼叫父類的構造方法,必須在(子類的)構造方法的第一個
2. super必須只能出現在子類的方法或者構造方法中!
3. super和 this 不能同時呼叫構造方法!
Vs this:
代表的物件不同:
this: 本身呼叫者這個物件
super: 代表父類物件的應用
前提
this: 沒有繼承也可以使用
super: 只能在繼承條件才可以使用
構造方法
this();:本類的構造
super():父類的構造!

重寫與過載

過載就是在同一個類中方法名相同,但是引數不同

重寫都是方法的重寫,和屬性無關

父類的引用指向了子類(B b = new A();//B是A的父類)

Override 重寫

重寫,需要有繼承關係,子類重寫父類的方法!
1. 方法名必須相同
2. 引數列表必須相同
3. 修飾符,範圍可以擴大但不能縮小: public>Protected>Default>private
4. 丟擲的異常,範圍,可以被縮小,但不能擴大:ClassNotFoundException --> Exception(大)

重寫,子類的方法和父類必要一致,方法體不同!

為什麼需要重寫:
1. 父類的功能,子類不一定需要,或者不一定滿足!
Alt + Insert : override;

多型

Person s = new Student(); //父類的引用指向子類

子類能呼叫的方法都是自己的或者繼承父類的
父類可以指向子類,但是不能呼叫子類獨有的方法

多型注意事項:

  1. 多型是方法的多型,屬性沒有多型
  2. 父類和子類之間必須有聯絡 ClassCastException 型別轉換異常!
  3. 存在條件:繼承關係,方法需要重寫,父類引用指向子類物件! Father f1 = new Son();
    不能重寫的方法:
    1. static 方法,屬於類,它不屬於例項
    2. final 常量;
    3. private方法;