class Main {
public static void main(String[] args) {
Animal pet = new Puppy();
Parent person = new Child();
person.print(pet);
}
}
class Parent {
void print(Puppy puppy) {
System.out.println("parents0");
puppy.howl();
}
}
class Child extends Parent {
void print(Puppy puppy) {
System.out.println("Child0");
puppy.howl();
}
void print(Dog dog) {
System.out.println("Child11");
dog.howl();
}
void print(Animal animal) {
System.out.println("Child2");
animal.howl();
}
}
class Animal {
void howl() {
System.out.println("Animal");
}
}
class Dog extends Animal {
void howl() {
System.out.println("Dog");
}
}
class Puppy extends Dog {
void howl() {
System.out.println("Puppy");
}
}