《大富翁 10》將於暑期登陸 Switch 平臺
阿新 • • 發佈:2021-07-13
封裝:
程式的設計追求“高內聚,低耦合”
資料的隱藏:通過介面來訪問
屬性私有:get、set
public class pet {
private String name;//private屬性私有在外部中不能使用
private int age; //這裡寫了一個get方法 //這時候我們可以在外部通過.getName的方法實現
public String getName(){
return this.name ;
} //這裡同樣可以用.setName的方法在外部寫入資料
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
} //封裝可以防止系統的惡意破壞,可以保護資訊,增加可維護性
public int getAge() {
if(age>120 || age<0){
this.name ="錯誤";
}else{
return age;
}
}
}
繼承(public class student extends person{}//學生繼承了人)
super();//呼叫父類的構造器必須放在子類構造器第一行一般預設可以不寫
System.out.println(name); //輸出text傳入的引數
System.out.println(this.name);//輸出456
System.out.println(super.name);//輸出123
}
}
public class Person{
protected String name="123"; //每個類都必須有無參構造可以不寫,系統會生成
}
注意點:
1.super呼叫父函式的構造方法,必須位於子類的第一行
2.super只能出現在子類的方法或構造方法中即只能在繼承條件下才能使用
3.super和this不能同時呼叫構造方法
4.this沒有繼承也可以使用,預設本類構造
方法的重寫
public class abc extends cba{
public static void test(){//static修飾的為靜態成員變數或類變數;
//沒有被static修飾的叫例項變數
/* 不加靜態繼承時會被重寫 靜態成員變數,
可以用類名直接訪問 例項變數可以有多個拷貝,
具有靈活性 靜態方法中不能使用this、super關鍵字
*/
System.out.println("測試2");
}
}
========================================================
public class cba{
public static void test(){
System.out.println("測試1");
}
}
=========================================================
public class text{
public static void main(String[] args){ //方法的呼叫只和左邊的型別有關
abc a=new abc();
a.test();//測試2 //父類的引用指向了子類
cba b=new abc();
b.test();//測試1
}
}
重寫的條件:
1.子類繼承了父類,子類才能重新父類
2.引數列表必須相同
3.修飾符,範圍可以擴大但不能縮小:public>Protected>Default>private
4.丟擲的異常:範圍,可以被縮小,但不能擴大:ClassNoteFoundException-->Exception(大)
重寫,子類的方法和父類必須要一致;方法體同
為什麼要重寫:
父類的功能,子類不一定需要,需要進行重寫來滿足。
多型
- Java裡只有單繼承 ,沒有多繼承
- object類、super、方法重寫
- 子類繼承父類就會有父類的全部方法(但是如果是私有的是無法繼承的)
- Java中所有的類預設繼承object類
- super
- 多型存在的條件
- 有繼承關係
- 子類重寫父類方法
- 父類引用指向子類物件
- 注意:多型是方法的多型,屬性沒有多型
- instanceof(型別轉換)引用型別,判斷一個物件是什麼型別