Java 多态性,遗传

Java 多态性,遗传,java,inheritance,Java,Inheritance,因此,我从Java教程中复制了MountainBike、RoadBike、TestBikes类(http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html) 然后我制作了“Bicycle.java”。。但是如果我试图通过使它成为主类来执行它,那么它甚至不会编译(大量非法的表达式开始) 是否要使该类与继承该类属性的所有类一起编译 public class Bicycle { public static voi

因此,我从Java教程中复制了MountainBike、RoadBike、TestBikes类(
http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html

然后我制作了“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类的所有代码——不要这样做。你的主方法应该是它自己单独的方法,不应该持有其他方法,应该创建一个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
    }
}

下次,请向我们展示导致问题的实际代码以及您的错误消息。这样你会得到更好的帮助,我们也会少一点沮丧。

接受前面的答案,重新开始,尝试分解不同的方法并调试每一种方法,而不是洗一洗错误和翻来覆去。确保每一个都在编写代码时进行编译,以便知道问题从何处开始。

关于,
“然后我制作了“Bicycle.class”。
——您不应该制作Bicycle.class,而应该制作Bicycle.java。类文件来自编译源代码java文件。您应该编写
.java
文件,java编译器将生成
.class
文件。您应该将这些文件作为答案发布,这样您就可以得到它的信任:)但是如果我试图通过使其成为主类来执行它,您的意思是什么?如果它不包含
publicstaticvoidmain(String[]args)
方法,您就不能执行它。@AC:您应该告诉我们您是如何编译代码的,并且您希望显示编译器向您显示的错误。