Ошибка в программе - наследование

У меня есть 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 не ясновидящий.)

Другие вопросы по тегам