麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

0011 多態

2019-11-14 09:06:33
字體:
來源:轉載
供稿:網友

多態定義

 多態就是指對象的多種形態。一個是引用的多態;一個是方法的多態。

1、引用多態

  當我們在寫面向對象程序的時候,一般父類的引用可以指向本類的對象。

Animal a = new Animal();  //a是父類的引用指向的是本類的對象Animal b = new Dog(); //b是父類的引用指向的是子類的對象//注意:我們不能使用一個子類的引用去指向父類的對象

  多態中,可以使用父類的引用指向子類的對象,如上面代碼里的對象b,那b究竟是代表 Dog 類還是代表Animal類呢?  

2、方法多態

  一般情況下,我們都是用本類的對象,調用本類的方法。在多態中,創建子類對象時,調用的方法為子類重寫的方法或繼承的方法。

Animal a = new Animal();  //a是父類的引用指向的是本類的對象Animal b = new Dog(); //b是父類的引用指向的是子類的對象//這邊是引用的多態a.bark();   //調用的是父類Animal的方法b.bark();   //調用的是子類Dog重寫的方法//這便是方法的多態

注意:

父類引用指向子類對象時不可以調用子類獨有的方法,只能調用繼承或重寫的方法引用多態不能使用一個子類的引用去指向父類的對象

多態引用類型轉換

  在我們使用多態時,經常會用到引用類型轉換。引用類型轉換有兩種。

  一種引用類型轉換是向上類型轉換(隱式/自動類型轉換),是小類型到大類型的轉換(無風險)。另一種是向下類型轉換(強制類型轉換),是大類型到小類型(有風險)。

  比如一杯水,我們倒進壺里,這種向上轉換是不存在風險的,計算機可以自動幫我們完成,所以向上類型轉換又叫做自動類型轉換隱式類型轉換。而如果我們想將壺里的水倒進杯子里,就可能會產生溢出,這是有風險的。計算機是不會自動完成這樣的操作。但如果程序猿想要完成這樣的操作,就只能強制轉換。所以向下類型轉換又叫做強制類型轉換

例如:

Dog a = new Dog();Animal b = a; //自動類型提升 向上類型轉換(無風險)/*Dog c = b; //將父類引用轉換成子類引用,編譯器不允許這樣做*/Dog c = (Dog)b; //在父類前加上小括號,里面加上子類類型,實現強制轉換//向下類型轉換/*Cat d = (Cat)b;//雖然編譯器不會報錯,但運行會出問題,因為b是指向Dog類的,它們是不同類型的對象,這里就存在風險/*

抽象類

  抽象類在定義類時,前面會加abstract關鍵字。那我們什么時候會用到抽象類呢?

在某些情況下,某個父類只是知道其子類應該包含怎樣的方法,但無法準確知道這些子類如何實現這些方法。也就是說抽象類是約束子類必須要實現哪些方法,而并不關注方法如何去實現。

從多個具有相同特征的類中抽象出一個抽象類,以這個抽象類作為子類的模板,從而避免了子類設計的隨意性。

所以由上可知,抽象類是限制規定子類必須實現某些方法,但不關注實現細節。

那抽象類如何用代碼實現呢,它的規則如下:

用 abstract 修飾符定義抽象類

用 abstract 修飾符定義抽象方法,只用聲明,不需要實現

包含抽象方法的類就是抽象類

抽象類中可以包含普通的方法,也可以沒有抽象方法

抽象類的對象不能直接創建,我們通常是定義引用變量指向子類對象。

1、先創建一個抽象類

構建抽象類

2、 填寫需要子類實現的抽象方法

package com.shiyanlou;//抽象方法public abstract class TelePhone {    public abstract void call();  //抽象方法,打電話    public abstract void message(); //抽象方法,發短信}

3、構建子類,并實現抽象方法。

package com.shiyanlou;public class CellPhone extends TelePhone {    @Override    public void call() {        // TODO Auto-generated method stub        System.out.PRintln("我可以打電話!");    }    @Override    public void message() {        // TODO Auto-generated method stub        System.out.println("我可以發短信!");    }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 羞羞视频免费网站含羞草 | 91久久91久久精品免观看 | 日韩蜜桃视频 | 亚洲aⅴ免费在线观看 | 在线观看免费精品 | 黄色一级片在线免费观看 | 99亚洲国产精品 | 女人裸体让男人桶全过程 | 国产亚洲精品久久777777 | 日本xxxx视频 | 久久国产综合视频 | av影院在线播放 | 五月婷婷第四色 | 欧美三级毛片 | 免费一级肉体全黄毛片 | 操操插插 | 午夜视频久久 | 国产成人精品免费视频大全最热 | 色婷婷av一区二区三区久久 | 少妇一级淫片免费放正片 | 精品一区二区久久久久久久网精 | 一本在线高清码电影 | 亚洲一区二区网址 | 中文字幕在线看第二 | www69xxxxx| 亚洲最新黄色网址 | 国产成人精品日本亚洲语音 | 国产一区免费视频 | 免费视频xxxx| 日韩精品中文字幕在线播放 | 久草在线视频首页 | 热re91久久精品国产99热 | a网在线| 久久精品视频1 | 国产91九色在线播放 | 国产精品成人一区二区三区电影毛片 | 亚洲性生活免费视频 | 欧美日韩1区2区3区 黄片毛片一级 | 国产一区二区三区四区在线 | 亚洲午夜久久久久 | 久久国产精品久久久久久久久久 |