簡單理解Java中的類、對象、繼承、多態等概念__Java

來源:互聯網
上載者:User
一、類

類(class)是構造對象的模版或藍圖。簡單理解就是“人類”是一個類,小明這個人就是該類的一個對象。由類構造(construct)對象的過程成為建立類的執行個體(instance)。 二、對象

對象是類的一個執行個體,有狀態和行為。例如,小明是一個對象,他的狀態有:姓名、身高、體重等;行為有:跑、跳、吃等。 三、繼承

關鍵字extends表示繼承。關鍵字extends表明正在構造的新類派生於一個已經存在的類。已存在的類稱為超類(superclass)、基類(base class)或父類(parent class);新類稱為子類(subclass)、衍生類別(derived class)或孩子類(child class)。

子類比超類擁有更多的功能和內容。都知道Object是最大的超類,Java中的所有類都直接或間接的繼承了Object類,而Object類中只有11個方法和1個構造方法而String類中包括構造方法在內有80多個方法還不包括從Object中繼承的方法。也就是說String類中總共有近百個方法。

在通過擴充超類定義子類的時候,僅需指出子類與超類的不同之處。因此在設計的時候,應該將通用的方法放在超類中,而將具有特殊用途的方法放在子類中。

在子類中可以增加域、增加方法或覆蓋超類的方法,然而絕不能刪除繼承的任何域或方法。

繼承可以以鏈狀的形式出現,也就是多層繼承,B繼承A,C繼承B……若不想讓任何類修改某個類,也就是不允許其他類繼承一個類,則僅需在類的聲明中添加final修飾,如:public final classString。允許繼承,但是不希望子類修改某個方法,則只需在方法的聲明中使用final進行修飾。

Java不支援多繼承。

四、多態

多態是指允許不同類的對象對同一訊息做出響應。即同一訊息可以根據發送對象的不同而採用多種不同的行為方式。(發送訊息就是函數調用)

實現多態的技術稱為:動態綁定(dynamic binding),是指在執行期間判斷所引用對象的實際類型,根據其實際的類型調用其相應的方法。如:在使用new String("Hello")構造String的一個執行個體時,程式會自動的選用String(String original) 構造方法,而不會選用其他的構造方法。

多態存在的三個必要條件:
1、要有繼承;
2、要有重寫;
3、父類引用指向子類對象

簡單的講就是可以將一個子類的對象賦值給超類對象。比如,所有的蘋果都是水果,但是,有些水果不一定是蘋果。一個蘋果中必定包含了水果的所有特點,這也可以解釋為什麼子類對象可以賦值給超類對象。但是水果不一定具有蘋果的特點,因為水果是一個比較公用的對象,所以反過來進行賦值操作,編譯器會報錯的。

class Fruit {private String color;private String name;public String getColor() {return color;}public void setColor(String color) {this.color = color;}public String getName() {return name;}public void setName(String name) {this.name = name;}}class Watermelon extends Fruit{private boolean isBig;public boolean isBig() {return isBig;}public void setBig(boolean isBig) {this.isBig = isBig;}}class Peach extends Fruit{private boolean isBig;public boolean isBig() {return isBig;}public void setBig(boolean isBig) {this.isBig = isBig;}}

上面的代碼中定義了三個類:水果、西瓜、桃子。西瓜和桃子都繼承自水果類,水果中有兩個域(屬性):color,name,西瓜和桃子中各有自己的isBig屬性。對上面的三個類進行測試: 

Fruit f = new Fruit();Watermelon w = new Watermelon();Peach p = new Peach();f = w;f = p;
這樣的測試語句是沒有問題的,但是將後面的兩句=前後的變數顛倒順序後就會報錯了,
西瓜對象中一定有 color 和 name 屬性,但是水果對象中不一定有 isBig 屬性。這樣對比一下就可以理解為什麼只能單向的將子類對象賦值給超類對象了。






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.