抽象方法:
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修飾後,繼承他的子類中重寫時也會自動加...