【问题标题】:why the subclass inherit the parent class have wrong?为什么子类继承父类有错?
【发布时间】: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。

标签: parent subclass extend


【解决方案1】:

您必须在Engine 的构造函数中调用TrainCar 的构造函数。你可以这样做:

public Engine (double size) {
     super(size);

    GPolygon engine = engine(size);     
    add(engine);
}

【讨论】:

  • 谢谢。输入超(尺寸);之后,该行不显示错误,但运行后它是错误的。
猜你喜欢
  • 2015-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多