【发布时间】:2013-02-16 21:39:43
【问题描述】:
如果继承 TrainCar 那是个问题。如果继承 GCompoud 那很好。哪里错了?
家长:
public class TrainCar extends GCompound{
public TrainCar(double size){
engine = new Engine(size);
add(engine);
}
}
子类:
public class Engine extends TrainCar {
public Engine (double size){ //if inherit TrainCar that's a problem.
//if inherit GCompoud that's well.
GPolygon engine = engine(size);
add(engine);
}
}
Boxcar 继承了 TrainCar,这很好。
在第 31 号讲义中:
public class Boxcar extends TrainCar {
public Boxcar(Color color) {
}
http://www-cs-faculty.stanford.edu/~eroberts/courses/cs106a/handouts/30-graphical-structures.pdf
【问题讨论】:
-
您正在创建一个递归循环。当创建一个新引擎时,它会创建一个新的 TrainCar,它会创建一个新的 Engine,它会创建一个新的 TrainCar,它会创建一个新的 Engine……
-
正如 Jensen Somers 所说,您正在创建递归循环。你要做什么指定。让它更清晰
-
这不是一个递归循环。如果子类继承 GCompoud,那就行了。不知道为什么子类不能扩展父类。
-
似乎您对 Java 编程语言有一些基本问题 - 先看看常见的教程,例如docs.oracle.com/javase/tutorial、javatutorialhub.com/java-tutorial.html 或 freejavaguide.com/corejava.htm。