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

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

java的向上轉型與向下轉型

2019-11-14 23:42:57
字體:
來源:轉載
供稿:網友
java的向上轉型與向下轉型

剛開始接觸java轉型,雖然現在還不知道為什么要轉型,但是先強記下語法吧

向上轉型:

首先要有一個父類,一個子類,

Person p=new Person();

p=new Student();

OK,這就是向上轉型,可以簡化成:Person p=new Student();

  1) p是Person的引用,指向Student的對象,p不是對象;

  2) p只能調用父類中有的成員變量與成員函數,子類中新有的方法與變量p不能使用,而執行的主體是子類的主體。

例如 class Person{ 

      void eat(){system .out.

      void sleep(){system.out.println("sleep...")}

}

   class Student extends Person{

      void eat(){system.out.println("I am a student")}

      void read(){system.out.println("I am reading...")}

}

  p可以調用eat方法,執行的是Student里的函數主體;也可以調用sleep方法,子類里沒有sleep方法,所以執行父類里函數主體;

  但不能調用read方法,因為Person沒有read方法;

向下轉型:

  向下轉型是在向上轉型的基礎上加一行

  Student s=(Student)p;

  同樣s也不是對象,是引用

  s可以調用父類與子類里的所有方法,都執行子類中的函數主體,子類中沒有的,則執行父類中的函數主體

總結:

1、父類引用可以指向子類對象,子類引用不能指向父類對象。

2、把子類對象直接賦給父類引用叫upcasting向上轉型,向上轉型不用強制轉型。

   如Father father = new Son();

3、把指向子類對象的父類引用賦給子類引用叫向下轉型(downcasting),要強制轉型。

   如father就是一個指向子類對象的父類引用,把father賦給子類引用son 即Son son =(Son)father;

   其中father前面的(Son)必須添加,進行強制轉換。

4、upcasting 會丟失子類特有的方法,但是子類overriding 父類的方法,子類方法有效

不知道這里有沒有錯誤,即使有錯誤現在也發現不了,慢慢學吧,就這樣


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 葫芦岛市| 温泉县| 吴江市| 康乐县| 安国市| 全椒县| 宁强县| 杭州市| 平谷区| 永胜县| 方山县| 巨野县| 辽阳县| 华阴市| 彰武县| 正定县| 仙桃市| 贵溪市| 武定县| 高台县| 舒兰市| 金乡县| 景东| 乐陵市| 石林| 章丘市| 天祝| 松潘县| 额尔古纳市| 唐海县| 通渭县| 洛宁县| 卓尼县| 乃东县| 乾安县| 嘉义县| 淮滨县| 阳城县| 自贡市| 梨树县| 桐庐县|