Java调用一个超类方法
我有一节课Java调用一个超类方法,java,inheritance,Java,Inheritance,我有一节课 public class GridColor { double min; double max; public GridColor(double min, double max) { this.min = min; this.max = max; } public double getColorValue(double value) { return 15*value*mi
public class GridColor
{
double min;
double max;
public GridColor(double min, double max)
{
this.min = min;
this.max = max;
}
public double getColorValue(double value)
{
return 15*value*min/max;
}
}
我还有一节课
public class GridNewValue extends GridColor
{
public GridNewValue(double min, max)
{
super(min, max);
}
public static void main(String[] args)
{
double value = 0.5;
GridNewValue gnv = new GridNewValue(0.0, 1.0);
System.out.println(gnv.getColorValue(value));
}
}
我对Java还很陌生。基本上我想打印super的getColorValue(value)
方法返回的值。我知道我的方法有严重错误。
请帮我继续你的方法很好:)
您创建了一个类,并从她那里继承,然后使用她的一个方法
当然,如果您没有任何要添加到GridNewValue的内容,因此不需要重写,但这是可以的,因为您没有重写子类中的方法,使用子类实例调用该方法将自动调用超类定义。
基本上,您已经在执行您希望代码执行的操作。如果您不重写getColorValue()
,则无论如何都会调用超类的实现。因此,你已经走上了正确的轨道
只有一个小语法错误:
public GridNewValue(double min, max)
应该是
public GridNewValue(double min, double max)
在java中,子类(在您的例子中是GridNewValue
自动具有与其父类相同的属性。因此,除非您在GridNewValue
类中重写getColorValue()
,否则在调用(new GridNewValue()).getColorValue()
时,它将调用父级中的方法。您期待什么?调用super的getColorValue(value)
方法不是吗?为什么你认为有什么问题?我看不出有什么问题;这应该是有效的,并且基本上是你想要的。