国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Javase中多態(tài)polymorphic的簡(jiǎn)單介紹

2019-11-15 01:09:14
字體:
供稿:網(wǎng)友
javase中多態(tài)polymorphic的簡(jiǎn)單介紹

-------------多態(tài)-----------------  (1)面向?qū)ο笕蠛诵乃枷耄?    1、封裝 2、繼承 3、多態(tài)   (2)多態(tài)定義:父類的引用指向子類的對(duì)象。   (3)引用指的是父類聲明的一個(gè)引用型變量,變量有: 1、成員變量                          2、靜態(tài)變量                          3、構(gòu)造方法的變量                          4、普通方法的變量                          5、聲明就用的變量  (4)變量的聲明一般來說需要三步:聲明數(shù)據(jù)類型 聲明變量名 賦值    但是嚴(yán)格來講為兩步:聲明數(shù)據(jù)類型 聲明變量名  (5)賦值有兩種情況:1、父類型聲明,賦值一個(gè)父類型的引用值    父類型聲明,賦值一個(gè)子類型的引用值            2、多態(tài)  (6)里氏替換原則:能使用父類的地方,一定可以使用子類  (7)多態(tài)的概念:    編譯階段,將父類的屬性,生成屬性列表,編譯時(shí)綁定    運(yùn)行階段,將子類生成一個(gè)對(duì)象,子類也有自身屬性列表,運(yùn)行時(shí)綁定    程序運(yùn)行時(shí),通過父類的屬性去調(diào)用子類對(duì)象的屬性(特指成員方法)  (8)具體調(diào)用:運(yùn)行階段    1、遍歷父類的屬性列表    2、遍歷子類的屬性列表    3、如果子類有相同,就調(diào)用子類的,沒有就調(diào)用父類的    4、如果父類沒有所指屬性,直接報(bào)錯(cuò),子類中不用去

public class Poly01{    public static void main(String[] args){        Big a = new Big();        a.eat();//輸出父類        Big b = new Small();        b.eat();//輸出子類        //b.happy();//報(bào)錯(cuò):找不到符號(hào)        b.cry();//輸出父類    }}class Big{    public void eat(){        System.out.

  

  多態(tài)發(fā)生的前提:有繼承關(guān)系的兩個(gè)類中(或說體系)   多態(tài)有兩種類型:1、向上轉(zhuǎn)型,這是從數(shù)據(jù)類型角度,把子類對(duì)象當(dāng)成父類來處理,可看作自動(dòng)類型轉(zhuǎn)換

          2、向下轉(zhuǎn)型,強(qiáng)制類型轉(zhuǎn)換  自動(dòng)類型轉(zhuǎn)換:1、基本數(shù)據(jù)類型中,低精度向高精度         2、引用數(shù)據(jù)類型中,子類向父類強(qiáng)制類型轉(zhuǎn)換:1、基本數(shù)據(jù)類型中,高精度向低精度       2、引用數(shù)據(jù)類型中,子類向父類

public class Poly02{    public static void main(String[] args){        //---------向上轉(zhuǎn)型----------        Big a1 = new Small();        a1.eat();//輸出子類        //a1.happy();//找不到符號(hào)        //向上轉(zhuǎn)型的缺點(diǎn):對(duì)丟失子類對(duì)象中特有的屬性        //---------向下轉(zhuǎn)型----------        //向下轉(zhuǎn)型是基于某個(gè)類的對(duì)象向上轉(zhuǎn)型后,才可向下轉(zhuǎn)型        Small a2 = (Small) a1;        a2.happy();//輸出子類        a2.cry();//調(diào)用父類        a2.eat();//輸出子類        //---------instanceof--------        //運(yùn)算符:判斷當(dāng)前對(duì)象是不是某個(gè)類實(shí)例化而來的        Big a3 = new Tiny();        a3.eat();        //Small b2 = (Small) a3;        //b2.happy();//編譯通過,但是java.lang.ClassCastException錯(cuò)誤        if (a3 instanceof Small){            Small b2 = (Small)a3;        }        System.out.println(a3 instanceof Small );        //為了避免java.lang.ClassCastException錯(cuò)誤,java引入了instanceof運(yùn)算符        //instanceof運(yùn)算符,其運(yùn)算結(jié)果是boolean;        // if( 引用 instanceof 類型名)-->true/false    }}

以上就是我的理解.歡迎大家指導(dǎo)!


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新宁县| 万荣县| 大化| 彭阳县| 乐山市| 株洲市| 依兰县| 长白| 湟源县| 四会市| 密云县| 盘山县| 高密市| 理塘县| 扶风县| 甘谷县| 斗六市| 土默特右旗| 探索| 弥勒县| 宕昌县| 江川县| 西平县| 高阳县| 张家界市| 井研县| 加查县| 广汉市| 陇南市| 古浪县| 曲水县| 外汇| 台中市| 万全县| 珠海市| 彭阳县| 磴口县| 波密县| 全州县| 乳山市| 康马县|