簡體   English   中英

多態,繼承

[英]Polymorphism, Inheritance

因此,我從Java的教程( http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html )中復制了MountainBike,RoadBike,TestBikes類。

然后,我制作了“ Bicycle.java”。但是,如果我嘗試通過使其成為主類來使其執行,那么它甚至都不會編譯(大量非法的表達式開頭。)

無論如何,要與所有從此類繼承屬性的類一起進行編譯?

   public class Bicycle {
    public static void main(String[] args) {
        int cadence;
       int gear;
        int speed;

    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }


    public void setCadence(int newValue) {
        cadence = newValue;
    }

    public void setGear(int newValue) {
        gear = newValue;
    }

    public void applyBrake(int decrement) {
        speed -= decrement;
    }

    public void speedUp(int increment) {
        speed += increment;
    }

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

您將方法放入方法內部,實際上,您已經將主方法包含了Bicycle類的所有代碼,請不要這樣做。 您的main方法應該是其自己的單獨方法,不應該包含其他方法,應該創建Bicycle實例。 在這個實例上調用方法就可以了。

public class Bicycle {
        public int cadence;
        public int gear;
        public int speed;

    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }


    public void setCadence(int newValue) {
        cadence = newValue;
    }

    public void setGear(int newValue) {
        gear = newValue;
    }

    public void applyBrake(int decrement) {
        speed -= decrement;
    }

    public void speedUp(int increment) {
        speed += increment;
    }

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

    public static void main(String[] args) {
      Bicycle bicycle = new Bicycle(20, 10, 2);
      System.out.println(bicycle);
      // ... etc
    }
}

下次,請向我們顯示從一開始就引起問題的實際代碼以及您的錯誤消息。 通過這種方式,您將獲得更好的幫助,而我們都會感到沮喪。

接受先前的答案並重新開始,嘗試分解不同的方法並調試每種方法,而不要洗刷錯誤並舉手。 確保每個代碼在編譯時都進行編譯,以便您知道問題從何而來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM