JAVA面向對象_5
一.多態
1.概念1.字面上,事物的多種形態
2.本質:一個類的對象在編譯的時候並不明確使用哪個對象,只有在運行的時候才確定,父類引用數據類型指向子類的對象
2.作用:
提升對象的作用範圍
3.條件
3.1向上轉型
3.2必須有繼承或者實現關係
4.應用領域:
4.1作爲參數傳入
4.2作爲返回值
二.向上轉型
父類的引用數據類型變量指向子類的對象
變量的獲取以及使用:向上轉型後:
注意的點:
1.1 擁有相同的名字的普通成員變量(包括靜態變量)時,訪問的是父類的
1.2 擁有相同名字的普通成員方法(非靜態方法時),訪問的是子類的
1.3 擁有相同名字的靜態成員方法,訪問的是父類的
1.4 父類的引用類型變量訪問不到子類特殊的成員
如果我要訪問子類的特有成員,該怎麼辦?
類型轉型
強轉:轉換的兩者必須存在繼承或實現關係,否則不能進行。
三.懶漢式和惡漢式
1.懶漢代碼:
class Single{
private int age;
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
private Single(){
super();
}
private static Single s =null;
public static Single getInstances(){
if(s=null){
s=new Single();
}
return s;
}
}
2.惡漢代碼:
class Single{
private int age;
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
private Single(){
super();
}
private static Single s=new Single();
public static Single getInstances(){
return s;
}
}
四.JAVA中設計模式
1. 總體來說設計模式分爲三大類:
創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行爲型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。 2.在處理某些情況下一種約定俗成,並且行之有效的方法
3. 主要是爲了解決在計算機內存中某個類只存在一個對象這種情況
裝飾者設計模式
工廠設計模式
代理設計模式