Почему в override функцию передается ноль?

183
05 мая 2017, 16:53

Главный класс:

public class Main {
        public static void main(String[] args){
            Circle c = new Circle();
        }
    }

Абстрактный класс Shape, от которого наследуюсь

    abstract class Shape {
        double area;
        Shape(){
            calculateArea();
        }
   protected abstract void calculateArea();
}

Класс, который ловит проблему

class Circle extends Shape{
    float radius = 10f;
    Circle() {
        super();
    }

    @Override
    protected void calculateArea() {
        area = 2 * Math.PI * this.radius;
        System.out.println(radius == 0);
        System.out.println(radius + "rad in calc");
        System.out.println(area + " = area");
    }
}

При запуски выводит вот это. true 0.0rad in calc 0.0 = area

Я не понимаю, почему переменная radius является нулём. Ведь в классе Shape я ее инициализирую (radius = 10f)

READ ALSO
Как передать ссылку на массив объектов в другой объект?

Как передать ссылку на массив объектов в другой объект?

Есть класс (пусть будет А), в нём есть массив

207
Сервер на java для android [требует правки]

Сервер на java для android [требует правки]

Всем привет! Уважаемые, я начинающий разработчик и хочу поработать над созданием своего сервера, для работы с мобильными приложениями под...

318
Java проблема с кодировкой

Java проблема с кодировкой

Если запускать через консоль так: java -Dfileencoding="UTF-8" -jar printerFX

182
Добавление активити в манифест

Добавление активити в манифест

Здравствуйте, у меня неординарный вопросИмеется апи от твиттера

221