最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

 更新時(shí)間:2016年09月30日 10:54:42   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

thinking in java3中的多態(tài)

People are often confused by other, non-object-oriented features of Java, like method overloading, which are sometimes presented as object-oriented. Don't be fooled: If it isn't late binding, it isn't polymorphism

按文面翻譯

人們總是被java的另一種非面向?qū)ο蟮奶匦运Щ?就像方法重載,有時(shí)候它以面向?qū)ο蠖嬖?請(qǐng)不要犯傻,如果沒有后期綁定(也就是運(yùn)行期的動(dòng)態(tài)綁定),它就不是多態(tài).

所以,這段話要表達(dá)的意思就是說,多態(tài)要有動(dòng)態(tài)綁定,否則就不是多態(tài),方法重載也不是多態(tài)(因?yàn)榉椒ㄖ剌d是編譯期決定好的,沒有后期也就是運(yùn)行期的動(dòng)態(tài)綁定)

當(dāng)滿足這三個(gè)條件 1.有繼承  2. 有重寫  3. 要有父類引用指向子類對(duì)象

<span style="font-size:14px;"> 

例:
public class Address {
private String name;
public Address(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

定義基類(抽象類):
public abstract class Vehicle {
abstract void go(Address address);
}

Car對(duì)于基類的實(shí)現(xiàn):
public class Car extends Vehicle{
@Override
public void go(Address address){
System.out.println("Car to " + address.getName());
}
}

Plane對(duì)于基類的實(shí)現(xiàn):
public class Plane extends Vehicle{
@Override
void go(Address address) {
System.out.println("Plane to " + address.getName());
}
}


Driver中多態(tài):
public void drive(Vehicle v){ ///多態(tài),父類引用指向子類對(duì)象,實(shí)際傳過來的是抽象類Vehicle的子類,或者實(shí)現(xiàn)類,然后編譯器會(huì)根據(jù)具體實(shí)現(xiàn)類,來找實(shí)現(xiàn)方法。
v.go(new Address("杭州(abstract)")); ///此方法在具體的實(shí)現(xiàn)中被重寫
}

Test:
public static void main(String[] args) {
Driver d = new Driver();
d.drive(new Plane()); //實(shí)際是Plane對(duì)象,則編譯器就會(huì)找到Plane中,對(duì)go的實(shí)現(xiàn)
d.drive(new Car()); //實(shí)際是Car對(duì)象,則編譯器就會(huì)找到Plane中,對(duì)go的實(shí)現(xiàn)
}

輸出結(jié)果:
Plane to 杭州(abstract)
Car to 杭州(abstract)

</span>

多態(tài):就是指相同的事物的不同狀態(tài),比如:水。水可以有三種狀態(tài):

氣體、液體和固體。那么在JAVA中的多態(tài)也可以理解成這個(gè)意思,就是:

將父對(duì)象設(shè)置成為和一個(gè)或多個(gè)它的子對(duì)象相等的技術(shù),

比如Parent=Child;

多態(tài)性使得能夠利用同一類(父類)引用不同類的對(duì)象,

以及根據(jù)所引用對(duì)象的不同,以不同的方式執(zhí)行相同的操作。

多態(tài)實(shí)現(xiàn)包括兩種方式:重載和重寫

例如:Animal a = new Tiger(); 這是一個(gè)老話題了,呵呵……

父類引用指向子類對(duì)象,Animal類中包含一個(gè)eat()方法,而Tiger類繼承自

Animal類,如果子類重寫了父類的eat()方法,則調(diào)用的時(shí)候,就可以按照子類

的形式調(diào)用,本質(zhì)上是父類的方法,但是子類重寫之后,就成了另一種方式,這就是多態(tài)。

以上就是小編為大家?guī)淼臏\談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持腳本之家~

相關(guān)文章

  • 帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之?dāng)?shù)組

    帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之?dāng)?shù)組

    這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之?dāng)?shù)組,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Spring中BeanFactoryPostProcessors是如何執(zhí)行的

    Spring中BeanFactoryPostProcessors是如何執(zhí)行的

    BeanFactoryPostProcessor是Spring容器提供的一個(gè)擴(kuò)展機(jī)制,它允許開發(fā)者在Bean的實(shí)例化和初始化之前對(duì)BeanDefinition進(jìn)行修改和處理,這篇文章主要介紹了你知道Spring中BeanFactoryPostProcessors是如何執(zhí)行的嗎,需要的朋友可以參考下
    2023-11-11
  • Java版給愛人表白的玫瑰花程序代碼

    Java版給愛人表白的玫瑰花程序代碼

    這篇文章主要講解了Java版給愛人表白的玫瑰花程序代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,一起跟隨小編過來看看吧
    2018-05-05
  • JAVA面試題之Forward與Redirect的區(qū)別詳解

    JAVA面試題之Forward與Redirect的區(qū)別詳解

    這篇文章主要給大家介紹了在JAVA面試中可能遇到會(huì)遇到的一道題,就是java中Forward與Redirect兩者之前的區(qū)別,文中介紹的非常詳細(xì),對(duì)大家具有一定參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • SpringBoot+WebSocket實(shí)現(xiàn)即時(shí)通訊功能(J2EE方式)

    SpringBoot+WebSocket實(shí)現(xiàn)即時(shí)通訊功能(J2EE方式)

    WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,WebSocket使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡(jiǎn)單,允許服務(wù)端主動(dòng)向客戶端推送數(shù)據(jù),本文給大家介紹了SpringBoot+WebSocket實(shí)現(xiàn)即時(shí)通訊功能(J2EE方式),需要的朋友可以參考下
    2025-01-01
  • 解決@Validated注解無效,嵌套對(duì)象屬性的@NotBlank無效問題

    解決@Validated注解無效,嵌套對(duì)象屬性的@NotBlank無效問題

    這篇文章主要介紹了解決@Validated注解無效,嵌套對(duì)象屬性的@NotBlank無效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java中的transient關(guān)鍵字介紹

    Java中的transient關(guān)鍵字介紹

    這篇文章主要介紹了Java中的transient關(guān)鍵字介紹,需要的朋友可以參考下
    2015-03-03
  • 簡(jiǎn)潔實(shí)用的Java Base64編碼加密異常處理類代碼

    簡(jiǎn)潔實(shí)用的Java Base64編碼加密異常處理類代碼

    這篇文章主要介紹了簡(jiǎn)潔實(shí)用的Java Base64編碼加密異常處理類代碼,有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-07-07
  • JAVA 集成 PF4J 插件框架的應(yīng)用場(chǎng)景分析

    JAVA 集成 PF4J 插件框架的應(yīng)用場(chǎng)景分析

    PF4J是一個(gè)強(qiáng)大的Java插件框架,允許開發(fā)者將應(yīng)用程序分解為可擴(kuò)展的模塊,本文介紹了PF4J的基本概念和如何在Java項(xiàng)目中集成,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-03-03
  • Java詳解實(shí)現(xiàn)多線程的四種方式總結(jié)

    Java詳解實(shí)現(xiàn)多線程的四種方式總結(jié)

    哈哈!經(jīng)過一個(gè)階段的學(xué)習(xí),Java基礎(chǔ)知識(shí)學(xué)習(xí)終于到多線程了!Java多線程以及后面互斥鎖的概念都是Java基礎(chǔ)學(xué)習(xí)的難點(diǎn),所以我做了一個(gè)總結(jié),希望對(duì)大家也有幫助
    2022-07-07

最新評(píng)論

若尔盖县| 叙永县| 平湖市| 上犹县| 开江县| 高青县| 朝阳区| 松滋市| 自治县| 尼玛县| 淮北市| 安乡县| 固安县| 博爱县| 芦山县| 财经| 云梦县| 彝良县| 崇州市| 朝阳市| 汉阴县| 安新县| 井陉县| 马山县| 保德县| 江山市| 蓬溪县| 广西| 北川| 太原市| 广平县| 望都县| 淅川县| 新巴尔虎右旗| 迁安市| 徐闻县| 邓州市| 涿州市| 罗山县| 安吉县| 镇远县|