Ошибка в программе - наследование
У меня есть Java-код, который, кажется, там ошибка; Я предположил, что конструктор из класса B не определен в суперклассе, а метод Circle (radius) не определен в классе B.
public class Circle {
private double redius;
public Circle (double radius)
{
radius = radius;
}
public double getRedius() {
return redius;
}
/*public void setRedius(double redius) {
this.redius = redius;
}*/
public double getArea(double radius)
{
return radius * radius * Math.PI;
}
}
class B extends Circle{
private double length;
B(double radius , double length)//this constructor is undefined in the super class
{
Circle (radius);// this method is undefined
length = length;
}
public double getArea()
{
return getArea() * length;
}
}
1 ответ
Использование super(radius);
скорее, чем Circle(radius);
,
Кроме того, назначение length = length
вообще ничего не делает использование this.length = length;
назначить length
аргумент length
поле экземпляра. (Есть похожая проблема в Circle
конструктор - это должно быть redius = radius;
(внимательно относитесь к вашему немного другому правописанию), который работает, потому что поле параметра и экземпляра имеют разные имена, что устраняет необходимость указывать, о чем вы говорите. Компилятор Java не ясновидящий.)