Java. Наследование
С наследованием Room класса Flat проблем нет.Всё выводит корректно(извиняюсь за некрасивый вывод, по ходу подправлю ).Но как наследовать Flat для класса Flat_town , к сожалению, мне пока не понятно. Появляются следующие ошибки при компиляции : error: call to super must be first statement in constructor.Попыталась переставить super(flour); и super(kitchenar); выше, но компилятор всё равно не доволен. Подскажите, как осуществить это "наследование наследника" корректно?
(Я только начинаю разбираться с Java , не ругайте сильно :))
class Room{
double area;
public Room(double area){
this.area=area;
}
}
class Flat extends Room{
int flour;
double kitchenar;
public Flat(double area,int floor,double kitchenar){
super(area);
this.floor=floor;
this.kitchenar=kitchenar;
}
}
class Flat_town extends Flat{
String town;
public Flat_town(double area,int floor,double kitchenar, String town){
super(area);
super(floor);
super(kitchenar);
this.town=town;
}
}
public class Main {
public static void main(String[] args) {
Flat flat1 = new Flat(12,3,15);
System.out.println("Площадь комнаты "+ flat1.area + " Этаж " + flat1.floor +" Площадь кухни "+ flat1.kitchenar);
Flat_town flat_town1 = new Flat_town(13,4,17,"Москва");
System.out.println("Площадь комнаты "+ flat_town1.area + " Этаж " + flat_town1.floor +" Площадь кухни "+ flat_town1.kitchenar+"Город"+ flat_town1.town);
}
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
super(...) в конструкторе - это вызов конструктора родительского класса, у которого три параметра.
super(area, floor, kitchenar);