真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在Java中使用多態(tài)

這篇文章將為大家詳細(xì)講解有關(guān)如何在Java中使用多態(tài),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的秀洲網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Java的特點(diǎn)有哪些

Java的特點(diǎn)有哪些 1.Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。 2.Java具有簡單性、面向?qū)ο?、分布式、安全性、平臺(tái)獨(dú)立與可移植性、動(dòng)態(tài)性等特點(diǎn)。 3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。

一 點(diǎn)睛

向上轉(zhuǎn)型:或者稱為向父類轉(zhuǎn)型。父類的對象通過子類對象實(shí)例化,實(shí)際上就是對象的向上轉(zhuǎn)型。向上轉(zhuǎn)型不需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,但是向上轉(zhuǎn)型會(huì)丟失精度。

向下轉(zhuǎn)型:或者稱為向子類轉(zhuǎn)型。也就是說父類對象可以轉(zhuǎn)換為子類對象,但是,此時(shí)必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換。

向上轉(zhuǎn)型時(shí),父類對象所能看見的方法依然是本類之中定義的方法(即被子類覆蓋的方法)。如果子類擴(kuò)充了一些新的方法,父類是看不見的。

二 父類對象找不到子類的擴(kuò)充方法

1 代碼

class baseClass
{
  public void print()
  {
    System.out.println("*****--父類baseClass:public void print(){}") ;
  }
}
class subClass extends baseClass
{
  public void print() // 方法覆寫
  {
    System.out.println("#####--子類subClass:public void print(){}") ;
  }
  public void getB() // 此方法為子類擴(kuò)充的功能
  {
    System.out.println("#####--子類subClass:public void getB(){},B類擴(kuò)充方法。") ;
  }
}
public class NewMethodTest
{
  public static void main(String args[])
  {
    baseClass baseObj = new subClass() ; // 實(shí)例化子類對象
    baseObj.print() ;
    baseObj.getB() ; // 這個(gè)方法父類無法找到
  }
}

2 運(yùn)行

編譯失敗

3 說明

盡管父類對象baseObj的實(shí)例化依靠子類完成,但是它能夠看見的還是自己本類所定義的方法名稱,如果方法被子類覆寫了,則調(diào)用的方法體也是被子類覆寫過的方法。

三 向下轉(zhuǎn)型

1 代碼

class baseClass
{
  public void print()
  {
    System.out.println("*****--父類baseClass:public void print(){}") ;
  }
}
class subClass extends baseClass
{
  public void print() // 方法覆寫
  {
    System.out.println("#####--子類subClass:print()") ;
  }
  public void getB() // 此方法為子類擴(kuò)充的功能
  {
    System.out.println("#####--子類subClass:getB(),子類擴(kuò)充方法。") ;
  }
}
public class DownCastTest
{
  public static void main(String args[])
  {
    baseClass baseObj = new subClass() ; // 實(shí)例化子類對象
    baseObj.print() ;   //調(diào)用子類subClass的 print()
    subClass subObj = (subClass) baseObj ; // 向下轉(zhuǎn)型,強(qiáng)制完成
    subObj.getB() ; // 這個(gè)方法父類無法找到,但子類對象可以找到
  }
}

2 運(yùn)行

#####--子類subClass:print()
#####--子類subClass:getB(),子類擴(kuò)充方法。

3 說明

在形式上,類定義的對象只能看到自己所屬類中的成員,雖然通過向上類型轉(zhuǎn)換,子類對象可以給父類對象賦值,但父類對象也僅能看到在子類中被覆蓋的成員(這些方法也在父類定義過了),父類對象無法看到子類的新擴(kuò)充方法。

四 隱藏

1 點(diǎn)睛

在某些場景下,我們不希望父類的方法被子類方法覆寫,即子類實(shí)例化后會(huì)調(diào)用父類的方法,而不是子類的方法,這種情況要用到隱藏。被關(guān)鍵字static修飾的靜態(tài)方法是不能被覆蓋的,Java中就是利用這一特性達(dá)到隱藏的效果。

2 代碼

class Father
{
  public static void overWritting()
  {
    System.out.println("#####--Father method");
  }
}
class Son extends Father
{
  public static void overWritting()
  {
    System.out.println("*****--Son method");
  }
}
public class HideSubClass
{
  public static void main(String args[])
  {
    Father dad  = new Son();
    dad.overWritting();
    Father.overWritting();
    Son.overWritting();
  }
}

3 運(yùn)行

#####--Father method
#####--Father method
*****--Son method

關(guān)于如何在Java中使用多態(tài)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


當(dāng)前題目:如何在Java中使用多態(tài)
標(biāo)題網(wǎng)址:http://weahome.cn/article/iigedi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部