Задача - Переопределить метод getChild в классах Cat(кот) и Dog(собака), чтобы кот порождал кота, а собака – собаку.
Что происходит логически в строках последовательно :
1 - Pet pet1 = new Cat(); / создаем объект new Cat()
2 - Pet cat = pet1.getChild(); / вызываем метод getChild()
3 - return new Cat(); / создаем объект new Cat(), то есть можно было сразу написать Pet cat = new Cat() ?
Что нам дает строка = pet1.getChild() ?
public class Solution {
public static void main(String[] args) {
Pet pet1 = new Cat();
Pet cat = pet1.getChild();
Pet pet2 = new Dog();
Pet dog = pet2.getChild();
}
public static class Pet {
public Pet getChild() {
return new Pet();
}
}
public static class Cat extends Pet {
public Pet getChild() {
return new Cat();
}
}
public static class Dog extends Pet {
public Pet getChild() {
return new Dog();
}
}
}
package com.javarush.task.task12.task1203;
/*
Кесарю — кесарево
*/
public class Solution {
public static void main(String[] args) {
Pet pet1 = new Cat();
Pet cat = pet1.getChild();
Pet pet2 = new Dog();
Pet dog = pet2.getChild();
}
public static class Pet {
public Pet getChild() {
return new Pet();
}
}
public static class Cat extends Pet {
public Pet getChild() {
return new Cat();
}
}
public static class Dog extends Pet {
public Pet getChild() {
return new Dog();
}
}
}