国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java? 教程(多態(tài)性)

J4ck_Chan / 1477人閱讀

多態(tài)性

多態(tài)性的字典定義是指生物學(xué)中的原理,其中生物體或物種可以具有許多不同的形式或階段,這個(gè)原則也可以應(yīng)用于面向?qū)ο蟮木幊毯拖馢ava語(yǔ)言之類的語(yǔ)言,類的子類可以定義它們自己的唯一行為,但仍然共享父類的一些相同功能。

可以通過(guò)對(duì)Bicycle類的微小修改來(lái)演示多態(tài)性,例如,可以將printDescription方法添加到顯示當(dāng)前存儲(chǔ)在實(shí)例中的所有數(shù)據(jù)的類中。

public void printDescription(){
    System.out.println("
Bike is " + "in gear " + this.gear
        + " with a cadence of " + this.cadence +
        " and travelling at a speed of " + this.speed + ". ");
}

要演示Java語(yǔ)言中的多態(tài)特性,請(qǐng)使用MountainBikeRoadBike類擴(kuò)展Bicycle類,對(duì)于MountainBike,添加一個(gè)suspension字段,這是一個(gè)字符串值,表示自行車是否有前減震器,或者,自行車有一個(gè)前后減震器。

這是更新的類:

public class MountainBike extends Bicycle {
    private String suspension;

    public MountainBike(
               int startCadence,
               int startSpeed,
               int startGear,
               String suspensionType){
        super(startCadence,
              startSpeed,
              startGear);
        this.setSuspension(suspensionType);
    }

    public String getSuspension(){
      return this.suspension;
    }

    public void setSuspension(String suspensionType) {
        this.suspension = suspensionType;
    }

    public void printDescription() {
        super.printDescription();
        System.out.println("The " + "MountainBike has a" +
            getSuspension() + " suspension.");
    }
}

請(qǐng)注意重寫(xiě)的printDescription方法,除了之前提供的信息之外,還有關(guān)于suspension的其他數(shù)據(jù)包含在輸出中。

接下來(lái),創(chuàng)建RoadBike類,因?yàn)楣奋嚮蛸愜嚨妮喬ズ鼙。蕴砑右粋€(gè)屬性來(lái)跟蹤輪胎的寬度,這是RoadBike類:

public class RoadBike extends Bicycle{
    // In millimeters (mm)
    private int tireWidth;

    public RoadBike(int startCadence,
                    int startSpeed,
                    int startGear,
                    int newTireWidth){
        super(startCadence,
              startSpeed,
              startGear);
        this.setTireWidth(newTireWidth);
    }

    public int getTireWidth(){
      return this.tireWidth;
    }

    public void setTireWidth(int newTireWidth){
        this.tireWidth = newTireWidth;
    }

    public void printDescription(){
        super.printDescription();
        System.out.println("The RoadBike" + " has " + getTireWidth() +
            " MM tires.");
    }
}

請(qǐng)注意,再次重寫(xiě)了printDescription方法,這次,顯示有關(guān)輪胎寬度的信息。

總而言之,有三個(gè)類:BicycleMountainBikeRoadBike,這兩個(gè)子類重寫(xiě)printDescription方法并打印唯一信息。

這是一個(gè)創(chuàng)建三個(gè)Bicycle變量的測(cè)試程序,每個(gè)變量都分配給三個(gè)自行車類別中的一個(gè),然后打印每個(gè)變量。

public class TestBikes {
  public static void main(String[] args){
    Bicycle bike01, bike02, bike03;

    bike01 = new Bicycle(20, 10, 1);
    bike02 = new MountainBike(20, 10, 5, "Dual");
    bike03 = new RoadBike(40, 20, 8, 23);

    bike01.printDescription();
    bike02.printDescription();
    bike03.printDescription();
  }
}

以下是測(cè)試程序的輸出:

Bike is in gear 1 with a cadence of 20 and travelling at a speed of 10. 

Bike is in gear 5 with a cadence of 20 and travelling at a speed of 10. 
The MountainBike has a Dual suspension.

Bike is in gear 8 with a cadence of 40 and travelling at a speed of 20. 
The RoadBike has 23 MM tires.

Java虛擬機(jī)(JVM)為每個(gè)變量中引用的對(duì)象調(diào)用適當(dāng)?shù)姆椒ǎ粫?huì)調(diào)用由變量類型定義的方法,此行為稱為虛方法調(diào)用,并演示Java語(yǔ)言中重要多態(tài)特征的一個(gè)方面。

上一篇:重寫(xiě)和隱藏方法 下一篇:使用super關(guān)鍵字

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72876.html

相關(guān)文章

  • Java? 教程(目錄)

    Java? 教程 Java教程是為JDK 8編寫(xiě)的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書(shū)籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買。 入門 介紹Java技術(shù)和安裝Java開(kāi)發(fā)軟件并使用...

    lifesimple 評(píng)論0 收藏0
  • Java? 教程(使用super關(guān)鍵字)

    使用super關(guān)鍵字 訪問(wèn)超類成員 如果你的方法覆蓋了它的一個(gè)超類的方法,你可以通過(guò)使用關(guān)鍵字super來(lái)調(diào)用被重寫(xiě)的方法,你也可以使用super來(lái)引用隱藏字段(盡管不鼓勵(lì)隱藏字段),慮這個(gè)類,Superclass: public class Superclass { public void printMethod() { System.out.println(Print...

    CKJOKER 評(píng)論0 收藏0
  • Java? 教程(類型擦除)

    類型擦除 泛型被引入到Java語(yǔ)言中,以便在編譯時(shí)提供更嚴(yán)格的類型檢查并支持通用編程,為了實(shí)現(xiàn)泛型,Java編譯器將類型擦除應(yīng)用于: 如果類型參數(shù)是無(wú)界的,則用它們的邊界或Object替換泛型類型中的所有類型參數(shù),因此,生成的字節(jié)碼僅包含普通的類、接口和方法。 如有必要,插入類型轉(zhuǎn)換以保持類型安全。 生成橋接方法以保留擴(kuò)展泛型類型中的多態(tài)性。 類型擦除確保不為參數(shù)化類型創(chuàng)建新類,因此,泛型不會(huì)...

    zsy888 評(píng)論0 收藏0
  • Java? 教程(List接口)

    List接口 List是一個(gè)有序的Collection(有時(shí)稱為序列),列表可能包含重復(fù)元素,除了從Collection繼承的操作之外,List接口還包括以下操作: 位置訪問(wèn) — 根據(jù)列表中的數(shù)字位置操縱元素,這包括get、set、add、addAll和remove等方法。 搜索 — 搜索列表中的指定對(duì)象并返回其數(shù)字位置,搜索方法包括indexOf和lastIndexOf。 迭代 — 擴(kuò)展Ite...

    hedzr 評(píng)論0 收藏0
  • Java? 教程(重寫(xiě)和隱藏方法)

    重寫(xiě)和隱藏方法 實(shí)例方法 子類中的實(shí)例方法的簽名(名稱,加上其參數(shù)的數(shù)量和類型)和返回類型與超類中的實(shí)例方法相同,將覆蓋超類的方法。 子類覆蓋方法的能力允許類從行為足夠接近的超類繼承,然后根據(jù)需要修改行為,重寫(xiě)方法與它重寫(xiě)的方法具有相同的名稱、數(shù)量和參數(shù)類型,以及返回類型。重寫(xiě)方法還可以返回由被重寫(xiě)方法返回的類型的子類型,此子類型稱為協(xié)變返回類型。 覆蓋方法時(shí),你可能希望使用@Override注解...

    fox_soyoung 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<