日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java 继承多态的一些理解和不理解

發(fā)布時(shí)間:2023/12/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 继承多态的一些理解和不理解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.向上轉(zhuǎn)型的一個(gè)誤區(qū)

一直以為Child 繼承Parent以后, Parent p = new Child();? p可以調(diào)用Child類(lèi)中拓展Parent的方法,原來(lái)必須在強(qiáng)制轉(zhuǎn)換成Child類(lèi)才可以。代碼如下:

class Parent{public void f(){};public void g(){}; } class Child extends Parent{public void f(){};public void g(){};public void h(){};public void i(){}; } public class ParentSub {public static void main(String[] args){Parent [] p = {new Child(),new Parent()};p[0].f();
     //p[1].h(); errorp[
1].g();//((Child)p[1]).h(); error ((Child)p[0]).h();} }

? 

  從 p[1].h(); 無(wú)法使用我感受到了糊涂,如果Child 拓展了Parent 的方法,那是不是意味著在多態(tài)中不能動(dòng)態(tài)的用到拓展的功能呢?

???? 那么從下面的這個(gè)向上轉(zhuǎn)型(子類(lèi)被轉(zhuǎn)化為父類(lèi)),可是又缺少了子類(lèi)的拓展方法。

1 package com.ebay.polymorphic; 2 3 class Parent2{ 4 public void f(){}; 5 public void g(){}; 6 } 7 class Child2 extends Parent2{ 8 public void f(){}; 9 public void g(){}; 10 public void h(){}; 11 public void i(){}; 12 } 13 public class ParentSub2 { 14 public void polymorphic(Parent2 p) 15 { 16 p.f(); 17 p.g(); 18 //p.h(); 錯(cuò)誤,可是如果我想用到Child類(lèi)的拓展方法 h 和i 怎么辦呢,難道必須重新寫(xiě)一個(gè)方法polymorphic(Child p)? 19 } 20 public static void main(String[] args){ 21 ParentSub2 ps = new ParentSub2(); 22 Parent2 p = new Child2(); 23 ps.polymorphic(p); 24 25 } 26 }

?

  我想如果在編程過(guò)程中Parent方法設(shè)計(jì)不合理,我想在 polymorphic(Parent2 p) 中調(diào)用 子類(lèi)的方法的話(huà),是不是必須重寫(xiě)一個(gè)方法不能利用多態(tài)的效果呢?這樣多態(tài)的效果不是消失了嗎?我的理解:是不是只有Child在要使用多態(tài)的方法(polymorphic)里完全的使用Parent類(lèi)的已有方法才行,如果想要使用Child的拓展方法,就不能想在多態(tài)的方法里實(shí)現(xiàn),必須重寫(xiě)。 ??? 有請(qǐng)其他人士來(lái)解決,我下次想到了繼續(xù)來(lái)更新。

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/liushuiwuqing/p/3305308.html

總結(jié)

以上是生活随笔為你收集整理的java 继承多态的一些理解和不理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。