繼承定義一個類B時,發現已有類A與要定義的類B相似,並且類B屬於類A的一種時,可以將類B定義為類A的子類。 當多個類有著共性內容,可以將共性內容向上抽取,抽取到一個新的類中,這個新類和多個類形成一個關係叫做繼承。 子類繼承父類後,自動擁有父類所有可繼承的屬性和功能。 註意事項 java只支持單繼承, ...
繼承
定義一個類B時,發現已有類A與要定義的類B相似,並且類B屬於類A的一種時,可以將類B定義為類A的子類。
當多個類有著共性內容,可以將共性內容向上抽取,抽取到一個新的類中,這個新類和多個類形成一個關係叫做繼承。
子類繼承父類後,自動擁有父類所有可繼承的屬性和功能。
註意事項
java只支持單繼承,不支持多繼承,支持多層繼承。
所有的類都直接或者間接繼承了Object類,Object類沒有父類
構造方法不能被繼承
方法重寫
當子類繼承父類後,自動擁有父類所有可繼承的屬性和功能。但是子類覺得父類方法不夠強大時,可以對父類方法按照自身邏輯
進行重寫。 也叫方法覆寫,方法覆蓋。
註意事項
1.可以使用 @Override檢驗是否為方法重寫
2.子類方法許可權必須大於等於父類方法許可權
3.推薦和父類方法一樣
父類對象與子類對象的創建過程
父類對象優先於子類對象產生
當每次創建子類對象時,都會預設調用父類的空參構造,創建父類對象(不是new出來的對象)
實際上是在子類對象中 創建了一個父類對象 因為子類要想父類的內容
需要有這樣一個父類的空間支持
在子類的每一個構造方法的第一行都有一個預設的super()調用父類的空參構造
super(參數) 調用父類的構造方法
this和super
this:本類對象的引用
super:本類對象中父類的引用
this和super
this.屬性名 訪問本類成員變數
this.方法名(參數) 訪問本類其他方法
this(參數) 訪問本類其他構造方法(註意必須在構造方法的第一行使用)(瞭解即可)
super.屬性名 訪問父類成員變數(非私有)
super.方法名(參數) 訪問父類成員方法(非私有)
super(參數) 訪問父類構造方法(非私有)(註意必須在構造方法的第一行使用)
註意:
this和super調用構造方法時不可以在同一個構造方法中同時使用,因為都需要定義在第一行。
調用構造方法時,必須要保證有這個構造方法才能夠調用,如果沒有這個構造方法則不能調用。
抽象類
抽象方法:沒有方法體的方法叫做抽象方法
抽象類:有抽象方法的類必須是抽象類
抽象類的使用
1.抽象類不能創建對象
2.定義子類繼承抽象類
3.子類重寫父類方法
4.創建子類對象 調用方法
抽象類細節:
1.抽象類可以沒有抽象方法
2.抽象類可以有具體的方法
3.抽象類必須是一個父類
4.子類必須重寫所有抽象方法,否則子類也是一個抽象類
5.抽象類有構造方法,子類需要使用構造方法為成員變數賦值
抽象類出現的意義
抽象類定義了一類事物最基本的屬性和行為。強制子類必須實現其功能。子類必須重寫其抽象方法
抽象類的定義
* 抽象類的定義
* public abstract class 類名{
*
*
* }