首頁  >  文章  >  Java  >  物件導向(繼承,重寫,this,super,抽象類別)

物件導向(繼承,重寫,this,super,抽象類別)

巴扎黑
巴扎黑原創
2017-06-26 09:59:572024瀏覽

繼承
定義一個類別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 類別名稱{
*
*
* }

#

以上是物件導向(繼承,重寫,this,super,抽象類別)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn