封裝,繼承,Super和重寫
阿新 • • 發佈:2020-12-12
java中只有單繼承,沒有多繼承
package com.lol.LiOu.oop.Demo04;
//在java中,所有的類,都預設直接或者間接連結整合object
//preson 人
public class Person {
//public 共有的
//protected 受保護的
//default 預設的
//private 私有的
public void say() {
System.out.println("說了一句話");
}
public int money = 10_0000_0000;
}
//ctrl+h顯示父子類關係
私有(private)的東西無法被繼承
super注意點:
1.super呼叫父類的構造方法,必須在構造方法的第一個
2.super必須只能出現在子類的方法或者構造方法中!
3.super 和this不能同時呼叫構造方法!
VS
this:代表的物件不同:
this:本身呼叫者這個物件
super:代表父類物件的應用
前提:this:沒有繼承也可以使用
super:只能在繼承條件才可以使用
構造方法:
this();本類的構造
super(); 父類的構造!
重寫:需要有繼承關係,子類重寫父類的方法!
1.方法名必須相同
2.引數列表必須相同
3.修飾符:範圍可以擴大但不能縮小 public >protected>private
4.丟擲的異常:範圍,可以被縮小但不能被擴大:ClassNotFoundException 不能--> Exception(大)
重寫,子類的方法和父類必須一致,方法體不同
為什麼要重寫?
1.父類的功能子類不一定需要或者不一定滿足!
Alt+Insert:override;
![螢幕截圖 2020-12-12 152256](C:\Users\LOL\Desktop\螢幕截圖 2020-12-12 152256.png)![螢幕截圖 2020-12-12 152424](C:\Users\LOL\Desktop\螢幕截圖 2020-12-12 152424.png)![螢幕截圖 2020-12-12 200609](C:\Users\LOL\Desktop\螢幕截圖 2020-12-12 200609.png)
呼叫方法
package com.lol.LiOu.oop;
import com.lol.LiOu.oop.Demo04.A;
import com.lol.LiOu.oop.Demo04.B;
public class App {
//靜態方法和非靜態方法區別很大
public static void main(String[] args) {
//費靜態:重寫
A a = new A();
a.test();
//父類的引用指向了子類
B b = new A();//子類重寫了父類的方法
b.test();
}
}
子類
package com.lol.LiOu.oop.Demo04;
public class A extends B{
//Override重寫
@Override//註釋
public void test() {
System.out.println("A=>test()");
}
}
父類
package com.lol.LiOu.oop.Demo04;
//重寫都是方法的重寫,與屬性無關
public class B {
public void test(){
System.out.println("B=>test()");
}
}