繁体   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