五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

polymorphism多態(tài)-java三大特性

2022-06-21 11:11 作者:虛云幻仙  | 我要投稿

/**
* 測(cè)試多態(tài) polymorphism 方法的多態(tài)
*/

public class TestPolymorphism {
? ?void eat(){
? ? ? ?System.out.println("各國(guó)人的吃飯方式");
? ? ? ?//父類(lèi)的方法
? ?}
}

class Chinese extends TestPolymorphism{
? ?void eat(){
? ? ? ?System.out.println("用筷子");
? ? ? ?//子類(lèi)重寫(xiě)
? ?}
? ?void drink(){
? ? ? ?System.out.println("喝茶");
? ?}
}

class American extends TestPolymorphism{
? ?void eat(){
? ? ? ?System.out.println("用叉子");
? ?}
}



class TestPoly{
? ?static void pe(TestPolymorphism p){
? ? ? ?//靜態(tài)方法屬于類(lèi),在類(lèi)內(nèi)可直接調(diào)用,不依附于對(duì)象名.
? ? ? ?p.eat();
? ?}
? ?public static void main(String[] args) {
? ? ? ?pe(new TestPolymorphism());
? ? ? ?//new一個(gè)父類(lèi)對(duì)象,調(diào)用父類(lèi)的eat
? ? ? ?pe(new Chinese());
? ? ? ?//new一個(gè)子類(lèi)對(duì)象 (形參)p = new Chinese() ?父類(lèi)引用p 指向子類(lèi)對(duì)象Chinese() 稱(chēng)為向上轉(zhuǎn)型
? ? ? ?//執(zhí)行p.eat()時(shí) p指向子類(lèi)對(duì)象 變成子類(lèi)對(duì)象.eat()

? ? ? ?pe(new American());
? ? ? ?//父類(lèi)引用p(形參)指向父類(lèi)或不同的子類(lèi) 調(diào)用各自重寫(xiě)的方法 形成多態(tài)

? ? ? ?TestPolymorphism p1 = new Chinese();
? ? ? ?p1.eat();
? ? ? ?//執(zhí)行時(shí)p1指向子類(lèi)對(duì)象 變成子類(lèi)對(duì)象.eat()
? ? ? ?//無(wú)法調(diào)用p1.drink(); 首先判定父類(lèi)p1.drink() 父類(lèi)沒(méi)有drink方法 此時(shí)還沒(méi)到p1指向子類(lèi)對(duì)象的步驟
? ? ? ?//TestPolymorphism p1為編譯類(lèi)型 ? ? new Chinese()為運(yùn)行時(shí)類(lèi)型
? ? ? ?//父類(lèi)引用變量p1只能調(diào)用編譯類(lèi)型TestPolymorphism的方法 不能調(diào)用運(yùn)行時(shí)類(lèi)型Chinese的方法


? ? ? ?TestPolymorphism p2 = new Chinese();
? ? ? ?//父類(lèi)引用p2 ?指向子類(lèi)對(duì)象 ?稱(chēng)為向上轉(zhuǎn)型
? ? ? ?Chinese c = (Chinese) p2;
? ? ? ?//子類(lèi)引用c 指向父類(lèi)編譯類(lèi)型p2 稱(chēng)為向下轉(zhuǎn)型 需要用(類(lèi)名)強(qiáng)制轉(zhuǎn)換
? ? ? ?c.drink();
? ? ? ?//p2.drink();依然報(bào)錯(cuò)
? ? ? ?((Chinese)p2).drink();
? ? ? ?//(Chinese)p2強(qiáng)制轉(zhuǎn)換后可用drink()
? ? ? ?//原對(duì)象仍然是Chinese類(lèi) p2仍然是TestPolymorphism類(lèi) c是Chinese類(lèi)


? ? ? ?if(p2 instanceof American){
? ? ? ? ? ?//判斷p2是否屬于A(yíng)merican類(lèi)
? ? ? ? ? ?American a2 = (American) p2;
? ? ? ? ? ?//由于Chinese類(lèi)不屬于A(yíng)merican類(lèi) 雖然編譯時(shí)可以強(qiáng)制轉(zhuǎn)換 但運(yùn)行時(shí)會(huì)報(bào)錯(cuò)
? ? ? ? ? ?//添加if語(yǔ)句判斷instanceof 為false即不執(zhí)行

? ? ? ? ? ?a2.eat();
? ? ? ?}
? ?}
}

polymorphism多態(tài)-java三大特性的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
青海省| 株洲县| 柯坪县| 仁化县| 独山县| 涞水县| 正蓝旗| 五常市| 铁力市| 平舆县| 武冈市| 冀州市| 白沙| 德昌县| 溧水县| 兴文县| 渑池县| 东台市| 石楼县| 鲁山县| 丽江市| 上蔡县| 洛隆县| 荣成市| 木里| 济源市| 加查县| 沂水县| 承德市| 四川省| 兴和县| 陇川县| 德清县| 宁陕县| 遂溪县| 芷江| 峨山| 环江| 民丰县| 根河市| 门头沟区|