物件導向2(2)
一、知識點:
1.介面
2.多型
3.內部類
二、介面:
1.當乙個抽象類中的方法都是抽象的時候,這時可以將該抽象類用
介面 inte***ce來代替。
2.介面中的成員修飾符是固定的(只能有這個兩種元素)
3.介面的出現將「多繼承」通過另一種形式體現出
來,即「多實現」。
三、介面的特點:
1.介面是對外暴露的規則。
2.介面是程式的功能擴充套件,可以用來多實現。
3.類與介面之間是實現關係,而且類可以
繼承乙個類的同時實現多個介面。
4.介面與介面之間可以有繼承關係,
類可以同時繼承抽象類和介面。
四、多型:
1.某一類事物的多種存在形態。
2.貓這個物件對應的型別是貓型別
,同時貓也是動物中的一種,也可以把貓稱為
動物。3.動物是貓和狗具體事物中抽取出來的父型別。
4.物件的向上轉型
物件的向下轉型(向下轉型必須先要向上轉型)。
5.父類或者介面的引用指向或者接收自己的子類物件。
6.多型的存在提高了程式的擴充套件性和後期可維護性
。7.需要存在繼承或者實現關係要有覆蓋操作。
五、多型的特點:
1.編譯時:要檢視引用變數所屬的類中是否有所呼叫的成員。
2.在執行時:要檢視物件所屬的類中是否有所調
用的成員。
3.只看引用變數所屬的類。
4.在多型中進行向下轉型最好是先用instanceof判斷下型別
。六、類設計的注意事項:
1.類的設計主要是父類的設計
。2.子類永遠不要去 繼承乙個已經完全實現好了的類,因為一旦發生向上轉型,
所呼叫的方法一定是被子類覆蓋過的方法,所以只會繼承抽象類或者是介面。
七、抽象類和介面的區別:
1.抽象類是乙個模板
,而介面是乙個標準
。八、工廠設計模式factory:
**:class factory//工廠類
if("橘子".equals(name))
return f;}}
九、**類設計模式proxy:
**:class proxycl implements net
public boolean check()
public void browse()
}十、內部類:
1.將乙個類定義在另乙個類的裡面,對裡面那個
類就稱為內部類(內建類,巢狀類)。
2.內部類可以直接訪問外部類中的成員,包括私有成
員。3.而外部類要訪問內部類中的成員必須要建立內部類
的物件。
**:class innerdemo
}class outer
}public inner getinner()
}在外部訪問內部類:
outer outer = new outer();
outer.inner in = outer.new inner();
in.print();
十一、使用static定義內部類:
**:class innerdemo
}class outer}}
十二、匿名內部類:
1.就是內部類的簡化寫法。
2.內部類可以繼承或實現乙個外部類或者介面。
3.就是建立乙個建立乙個帶內容的外部類或者介面的子類
匿名物件。
**:class nonamedemo
});}
}inte***ce a
class b implements a
}class do
}
22 物件導向
1 物件導向 物件導向的程式設計的核心是物件 上帝式思維 要理解物件為何物 物件就是單獨的個體,程式的設計都是在這個個體之內。優點 解決了程式的擴充套件性。對某乙個物件單獨修改,會立刻反映到整個體系中,如對遊戲中乙個人物引數的特徵和技能修改都很容易。缺點 可控性差 類 抽象的,我能知道什麼屬性,有什...
python學習之路22 物件導向
物件導向函式都是定義了一類事物,直到呼叫函式,賦值給物件後才開始執行 類是抽象的,有屬性,有技能,但不知道他們具體的值,需通過傳參才能執行 物件有具體的值 屬性和技能,都是根據類規範的 class dog 類名 一次模擬小狗的簡單嘗試 def init self,name,age 初始化方法,sel...
day22 初始物件導向 類
類 具有相同特徵的一類事物 人 狗 老虎 物件 例項 具體的某乙個事物 隔壁阿花 樓下旺財 class person 類名 country china 創造了乙個只要是這個類就一定有的屬性 類屬性 靜態屬性 def init self,args 初始化方法,self是物件,是乙個必須傳的引數 sel...