首頁 Java java教程 物件導向(繼承,重寫,this,super,抽象類別)

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

Jun 26, 2017 am 09:59 AM
this 物件 繼承 重寫 面向

繼承
定義一個類別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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

C++ 函式繼承詳解:如何在繼承中使用「基底類別指標」和「衍生類別指標」? C++ 函式繼承詳解:如何在繼承中使用「基底類別指標」和「衍生類別指標」? May 01, 2024 pm 10:27 PM

C++ 函式繼承詳解:如何在繼承中使用「基底類別指標」和「衍生類別指標」?

PHP中的Request物件是什麼? PHP中的Request物件是什麼? Feb 27, 2024 pm 09:06 PM

PHP中的Request物件是什麼?

C++ 中繼承和多態性如何影響類別的耦合度? C++ 中繼承和多態性如何影響類別的耦合度? Jun 05, 2024 pm 02:33 PM

C++ 中繼承和多態性如何影響類別的耦合度?

如何將 MySQL 查詢結果陣列轉換為物件? 如何將 MySQL 查詢結果陣列轉換為物件? Apr 29, 2024 pm 01:09 PM

如何將 MySQL 查詢結果陣列轉換為物件?

如何在 golang 中重寫函數? 如何在 golang 中重寫函數? Apr 27, 2024 am 11:15 AM

如何在 golang 中重寫函數?

C++ 函式繼承詳解:如何偵錯繼承中出現的錯誤? C++ 函式繼承詳解:如何偵錯繼承中出現的錯誤? May 02, 2024 am 09:54 AM

C++ 函式繼承詳解:如何偵錯繼承中出現的錯誤?

數組和物件在 PHP 中的差異是什麼? 數組和物件在 PHP 中的差異是什麼? Apr 29, 2024 pm 02:39 PM

數組和物件在 PHP 中的差異是什麼?

C++ 函式回傳物件時有什麼需要注意的? C++ 函式回傳物件時有什麼需要注意的? Apr 19, 2024 pm 12:15 PM

C++ 函式回傳物件時有什麼需要注意的?

See all articles