三大特性之一「多型」

2021-09-10 21:38:21 字數 1958 閱讀 7722

**方法過載:**發生在同乙個類中,出現的方法名相同,引數列表不同的情況!與返回值型別(構造方法沒有返回值型別)和訪問修飾符無關!

**方法重寫:**發生在子類和父類之間,當子類繼承了父類的方法資訊之後,如果覺得不夠強大,可以進行優化、重寫!方法名相同。引數列表也相同,返回值型別相同或者為其子類,訪問修飾符不能嚴於父類!

註解@override 為了幫助你檢驗是否是方法重寫![推薦]

比較項位置

方法名參數列

返回值訪問修飾符

方法重寫

子類相同

相同相同或是其子類

不能比父類更嚴格

方法過載

同類相同

不相同無關

無關超級類、祖宗類!

你定義的每個類其實都直接或間接繼承自object類。

!(f:\新建資料夾\截圖\截圖\繼承 (2).png)

[面試題]equals和==的區別?

我們重寫的equals:

public

class

student

// alt+shift+s -> h

@override

public

boolean

equals

(object obj)

elseif(

!name.

equals

(other.name)

)return

false

;return

true

;}

多型:多種形態。父類的引用指向子類的物件。

/**

* 主人類

* @author charles

* */

public

class

master

public void feedtiger(tiger tiger) */

// 多型:父類的引用/宣告 指向了子類的物件

// 多型應用1.父類的引用可以作為方法的形參

// pet pet = new pet();

// pet pet = new monkey();

// pet pet = new tiger();

public

void

feedpet

(pet pet)

else

if(pet instanceof

tiger)}

/*public monkey getmonkey()

public tiger gettiger() */

// 多型應用2.父類的引用可以作為方法的返回值型別

public pet getpet

(int choice)

else

if(choice ==2)

return null;

}}

instanceof(…的物件/例項):用來判定是否是某個型別的物件。

string str1 = "***";

str1(物件) instanceof string(型別)表示判斷str1是否是字串型別

型別轉換。

自動型別轉換

強制型別轉換

pet pet = new monkey(); // 自動型別轉換 向上轉型

// 父類的引用無法呼叫子類的特有特徵 所以需要強轉

monkey mon = (monkey)pet; // 強制型別轉換 向下轉型

一般配合instanceof進行轉型!

if(pet instanceof monkey){

monkey mon = (monkey)pet;

物件導向三大特性之一 多型

多型 普通版本 對於同乙個方法,由於呼叫的物件不同 或者傳入的物件不同 最終實現了不同的結果 定義電腦類 class computer 在電腦類中定義乙個 sub 的規範的介面 方法 def usb self,obj obj.start 定義滑鼠類 class mouse def start sel...

php物件導向三大特性之一多型

1.抽象類是乙個特殊的方法,介面是特殊的抽象類,多型就是使用抽象類和介面 2.是物件導向設計的重要特性,它展現了動態繫結的功能,也稱為 同名異式 多型的功能可以讓軟體在開發和維護時,達到充分的延伸性。事實上,多型最直接的定義就是讓具有繼承關係的不同類物件,可以以相同名稱的成員函式呼叫,產生不同的反應...

物件導向三大特性之一 多型(C )

目錄 多型的定義及實現 抽象類多型的原理 單繼承和多繼承關係的虛函式表 1 什麼是多型?當不同的物件去完成某個行為時,會產生出不同的結果。多型是 不同繼承關係的類物件去呼叫同一函式時,產生了不同的行為。例如 student類繼承了person類。person物件買票全價,student物件買票半價。...