这给山地车所有相同的字段和方法自行车,但允许其代码完全集中于,使其独特的功能。这使得您的子类的代码易于阅读。但是,必须注意正确记录每个超类定义的状态和行为,因为该代码不会出现在每个子类的源文件中。
但是在我的代码中,继承无法正常工作,可能是由于我的代码存在缺陷?
package java1;
class bicycle {
int speed = 0;
int gear = 1;
void accelerate(int incr) {
speed = speed + incr;
}
void decelerate(int incr) {
speed = speed - incr;
}
void changeGear(int val) {
gear = val;
}
void printInfo() {
System.out.println("Speed: " + speed + " Gear: " + gear);
}
}
class mountainbike extends bicycle {
int speed = 10;
}
public class Main {
public static void main(String[] args) {
mountainbike mb1 = new mountainbike();
mb1.accelerate(20);
mb1.accelerate(10);
mb1.printInfo();
}
}
山地自行车班应该继承自行车班的所有特点吧?我添加了一个独特的属性,它是int speed = 10
,所以启动速度应该是10。不过上运行的编译器将启动速度为0
任何想法?
感谢您的回复。显然,在编程世界中有很多种方法来解决障碍:D 现在我想我会使用构造函数并为简单起见分配'speed = 10',我真的不知道如何使用' public'和'private'和'super()'的东西。 – Fabian 2009-12-18 12:28:07