封裝
1、 面向對象語言使用class封裝屬性和方法。
2、 屬性一般要求定義為private,封裝保護
繼承。
繼承的例子隨處可見。需要符合is-a關系,父類更加通用,子類更加具體。
在子類中使用super關鍵字:
1、調用父類的構造方法使用super
2、在子類中可以使用super調用父類中方法
多態:
1、 開閉原則:能夠添加新的代碼而不是修改原有代碼來使用需求的變更。對修改關閉,對增加開放。
2、 子類可以無條件的給父類賦值。
多態的實現方式:
1、普通類
2、抽象類
3、接口(推薦);
Java的構造方法理解:
Java構造方法是Java類中的一個比較特殊的方法,特殊在以下幾點:
1、 該方法一定與類同名,
2、 該方法沒有返回值(void也不行)
3、 該方法不能手工調用,在創建類的實例的時候被系統自動調用
4、 一個類可以沒有自定的構造方法,它將使用系統的隱式午餐構造方法,也可以自定義多個構造方法,他們之間構成重載,可以相互調用。
5、 如果自定了有參構造函數,將會評比系統默認的無參構造函數
6、 構造方法不能被繼承,決定了他不能重寫,直接子類調用父類方法,使用super關鍵字。
Java中的接口與抽象類
1、 接口中的方法和屬性必須是public
2、 方法特征的集合,但是沒有方法的實現。
3、 一個類可以實現一個或多個接口,只可以繼承一個類
4、 接口沒有方法實現,不能達到復用的目的。為了達到復用的目的,可以使用抽象類,
抽象類的特點;
1、 不可實例化,與接口一致,都不可以實例化。
2、 接口中只可以定義常量和抽象方法,抽象類與普通類的不通知僅在於其中存在有抽象方法,,繼承與抽象類必須實現被繼承類中的抽象方法。
3、 抽象類是一個未定義完整的類。其中的抽象方法將會延遲到子類去實現
4、 抽象類+子類實現的抽象防范 == 完整的類,
幾個簡單的問答:
1、 一個抽象類可不可以沒有抽象方法、 可以,他可以和一個完整的類一樣,但是這樣就失去了抽象類存在的意義
2、 可以有多個抽象方法,抽象方法一定不能有實現。
3、 一個普通類中是否可以包含抽象方法? 當然不可以,若有,將會變成抽象類
4、 抽象類的子類一定要實現抽象類中的抽象方法,不一定對,其子類可以為抽象類,
5、 接口的實現類一定要實現接口中多定義的方法嗎?如果接口的實現類沒有實現接口中抽象方法、其必須為抽象類
6、 接口是可以繼承的。