Максимально простой код-2
Упрости код — удали все конструкторы и вызовы конструкторов суперклассов, которые автоматически добавятся при компиляции.
Взаимосвязь между объектами классов NakedCat и NormalCat, SiamCat — Is-a
public class Solution {
public static void main(String[] args) {
SiamCat simka = new SiamCat("Simka");
NakedCat nakedSimka = simka.shave();
}
public static class NakedCat {
}
public static class NormalCat extends NakedCat {
public NormalCat() {// этот конструктор не вызовется автоматически?
//super(); // (вместе с вызовами суперклассов)
//super(); // почему его нужно оставить?
}
public NormalCat(String name) {
System.out.println("My name is " + name);
}
public NakedCat shave() {
return this;
}
}
public static class SiamCat extends NormalCat {
public SiamCat(String name) {
super(name);
}
}
}
задача Максимально простой код-3
Упрости код:
убери все наследования классов, которые автоматически добавятся при компиляции;
убери все конструкторы, которые создаются и добавляются автоматически.
public class Solution {
public static void main(String[] args) {
}
public interface Runnable {
}
public class Machine implements Runnable {
public Machine() { //здесь конструктор автоматически добавится, нужно удалить
}
}
public class Car extends Machine{
public Car() { //и здесь тоже
}
}
}