多型的認識

2021-09-28 23:19:48 字數 1905 閱讀 2646

抽象方法:

1.是在例項方法的返回值前面新增abstract,代表該方法不用提供實現

2.抽象方法一般放在基類裡面

3.擁有抽象方法的類,一定得定義成抽象類

注:擁有抽象方法的類 一定是 抽象類

抽象類 不一定擁有 抽象方法

什麼是多型:

多型就是用基類引用,引用不同的派生類物件,通過基類的引用變數呼叫同名覆蓋方法,這個基類引用 、引用了哪個派生類物件,就會呼叫哪個派生類物件重寫的方法

多型的好處是什麼:

它的好處就是,在**設計的時候,不用給每乙個派生類都提供相應的入口,而是用基類引用接收所有的派生類物件,然後呼叫同名覆蓋方法,實現多型呼叫多型呼叫的實現(依賴函式的動態繫結實現的)

eg:動物都會用叫,但是鳥會飛,這種特有的功能就得用特殊的介面將它定義

定義乙個抽象方法的類,比如動物類就是乙個抽象類

// 給所有派生類保留統一的抽象方法,等待派生類去重寫

public

abstract

void

bark()

;// 抽象方法

}

定義實體類,並繼承基類中所實現的功能

// 貓 - 實體類

class

catextends

animal

@override

// 在派生類中一定要重寫基類繼承來的抽象方法

public

void

bark()

}// 狗 - 實體類

class

dogextends

animal

@override

public

void

bark()

}// 豬 - 實體類

class

pigextends

animal

@override

public

void

bark()

}// 鳥 - 實體類

class

bird

extends

animal

implements

ianimal

@override

public

void

bark()

public

void

fly(

)}

將動物的叫聲和飛的行動封裝在show函式中,通過函式的動態繫結實現呼叫。

注意!!!

此時可能在封裝函式時可能會出現每個動物叫聲都封裝起來的情況,例如:

public

static

void

show

(cat cat)

public

static

void

show

(dog dog)

public

static

void

show

(pig pig)

但如果任意給乙個物件新增一項新功能時,就需要在**上進行修改!

軟體設計的終極原則:「開——閉原則(對擴充套件開放,對修改關閉)」

public

class

polymorphism

}public

static

void

main

(string[

] args)

}

多型的初步認識

1 抽象類與介面的區別 1 相同點 都是不斷向上抽取而來的 2 不同點 抽象類要被繼承,只有單繼承 介面需要被實現,支援多實現。抽象類的成員變數可以是各種形態的,介面的成員變數只能是 public static final 2 多型的概念 乙個物件對應著多種形態 在 中的概念 父類或者介面的引用指向...

多型初步認識

首先建立父類,因為byd和bmw同輸入汽車,有共同的屬性和方法 1public class car 8public car int price,string type,string color 1415 public void show 18 建立byd子類,並重寫方法 1public class ...

多型的整體認識 虛函式篇

虛函式是多型的得力助手之一。可以在子類繼承到父類的成員函式時,在不改函式名的情況下,將他的功能重新定義,為己所用。要注意的是,被static修飾的靜態成員函式,被inline修飾的內聯函式,建構函式不可以被宣告為虛函式。當在基類的成員函式型別前加了virtual修飾後,繼承他的子類中重寫時也會自動加...