package com.javarush.task.task13.task1328;
public class Robot extends AbstractRobot {
private String name;
public Robot(String name) {
super(name);
}
public String getName() {
return super.getName();
}
}
Скажите пожалуйста добрые люди:
Как простой робот реализует тактику защиты и нападения, если вся соответствующая логика была вынесена в Абстрактный робот??? :)
Даниил
22 уровень
Задачу решил но остался в непонятках
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
vinslerExpert
18 декабря 2019, 15:03полезный
Зачем нужен абстрактный робот?
В целом не зачем, все можно описать внутри робота, это просто для показа как правильно строить классы. Т.е. абстрактный робот умеет делать все, что может сделать любой абсолютно робот, его можно назвать не абстрактный, а абсолютный робот, т.е. его логика будет доступна абсолютно всем будущим роботам. И если вдруг всем роботам нужно будет добавить что-то, то это достаточно будет добавить в абстрактного робота и оно наследуется у всех роботов. Так же есть разница в абстратных классах и интерфейсах, но это другой вопрос.
+1
YuriyExpert
18 декабря 2019, 13:55
Класс Robot наследуется от класса AbstractRobot, т.е. все неприватные методы класса AbstractRobot доступны для объектов класса Robot.
0
Даниил
18 декабря 2019, 14:30
это я вроде-бы понимаю, но как то не могу осознать
0
YuriyExpert
18 декабря 2019, 14:39
Вот смотрите: есть машина и она умеет ездить, мы берем эту машину (наследуемся от класса "машина") и привариаем ей хвост и пару пропеллеров превращая ее в веротолет. Наш веротолет (новый класс, наследник класса "машина") умеет летать (новый метод), но и ездить он не разучился (метод "ездить" родительского класса доступен, хотя явно не реализовывался).
0
Даниил
18 декабря 2019, 17:01
т е можно так делать, да?
0
YuriyExpert
18 декабря 2019, 17:35полезный
Вот с роботом в задаче у Вас и есть конкретный пример.
+2
Михаил
19 апреля 2020, 12:23
Да, только что делать если конкретный робот, допустим, не умеет оборонятся от конкретного вида атак. Допустим не может отразить удар в голову) Писать другой абстрактный класс?
Из лекций я понял что абстрактный класс это заготовка для реализации его в конкретном классе. В лекциях был пример с машиной и конвеером. Машина на конвеере это уже машина, но она не будет ездить пока её не соберут окончательно
0