если наследовать 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, который создает новый движок, который создает новый TrainCar, который создает новый движок ... – Jensen
Поскольку Дженсен Сомерс сказал, что вы создаете рекурсивный цикл. То, что вы пытаетесь сделать, указывает это. Сделайте это более ясным –
, это не рекурсивный loop.if подкласс, наследующий GCompoud, который работает. Я не знаю, почему подкласс не может продлить родителя. – user2094097