多態(tài)
即同一方法可以根據(jù)發(fā)送對象的不同而采用多種不同的行為方式
一個(gè)對象的實(shí)際類型是確定的,但可以指向?qū)ο蟮囊玫念愋陀泻芏?/p>
注意:
- 多態(tài)是方法的多態(tài),屬性沒有多態(tài)
- 有父類和子類的關(guān)系,類型轉(zhuǎn)換異常:ClassCastException
- 多態(tài)存在條件:繼承關(guān)系,方法重寫(沒有方法重寫那就沒啥意義),父類引用指向子類對象
- 哪些方法不能被重寫:
- static方法:可以繼承,但不能重寫
- final方法:可以繼承,但不能重寫
- private方法:繼承不下來,更不能被重寫
public class zhixing {
public static void main(String[] args) {
/*
一個(gè)對象的實(shí)際類型是確定的,在這里他們的實(shí)際類型都是student();
但可以指向的引用類型是不確定的,父類的引用指向子類
*/
//student能調(diào)用的方法包括自己的和繼承父類的
student s1 = new student();
//父類型,可以指向子類,但是不能調(diào)用子類獨(dú)有的方法,可以調(diào)用自身的方法,被子類重寫后的方法,就需要調(diào)用重寫后的
Person s2 = new student();
Object s3 = new student();
}
}
多態(tài)其實(shí)就是創(chuàng)建子類對象的時(shí)候引用類型可以寫為子類或者父類
|