国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 饶平县| 房产| 安平县| 体育| 电白县| 昌吉市| 汕尾市| 吉安县| 应城市| 广昌县| 永寿县| 临潭县| 桦甸市| 遂溪县| 新和县| 屯门区| 盐津县| 永安市| 华宁县| 仙居县| 介休市| 陇西县| 嘉义市| 宜宾市| 余姚市| 通道| 珠海市| 杨浦区| 农安县| 古丈县| 根河市| 泉州市| 潜江市| 堆龙德庆县| 荔浦县| 调兵山市| 沂南县| 铁岭市| 蒲城县| 嘉峪关市| 镇宁|