java的面向對象:找誰(方法)干什么事
java三大特性 :封裝、繼承、多態
一、封裝
作用就是方便使用,面向對象
- 封裝的的操作--private 關鍵字
封裝優化--this關鍵字
this的作用。主要事重名的時候,起到區分作用。方法被誰調用誰就是this
二、繼承
java是單繼承的,繼承主要解決的問題就是:共性抽取
為什么要有繼承,如圖
- 繼承---成員屬性,子類父類屬性重名問題()
- 繼承---成員方法,子類調用,優先使用子類自己的
- 繼承---構造方法,super()
方法覆蓋:
父子子類內存圖
三、多態
多態指的是對象的多態性,而不是這個類。
多態作用:用方法參數上,方法返回值上
代碼中的多態性,就是父類引用指向子類對象。右側子類對象就被當作父類對象使用。
屬性不能覆蓋重寫
子類獨有的方法,要向下轉型為子類,方可調用。用instance of 判斷,防止發生類轉換異常
多態的另一種實現---接口
public interface 接口名稱 {
// 屬性 (public static final int num=10) 常量(必須賦值) 接口名稱.屬性名
// 抽象方法 (有抽象方法需要實現,沒有就不用實現)
// 默認方法 (為了解決接口升級,和lamata表達式和函數接口,接口默認方法可添加函數模型)java8
// 靜態方法 (注意:不能通過接口的實現類調用靜態方法)->接口名稱.方法名 java8
// 私有方法 java9 (普通私有 靜態私有) 【private 【static】返回值類型 方法體 】
}
抽象方法
默認方法
靜態方法
私有方法
補充--抽象類
抽象類出現 主要是因為方法不確定性,有抽象方法的類必須是抽象的類
抽象類的使用
抽象類的注意事項