Ваш класс Parent
ничего не знает о методах в вашем классе Child
. Вот почему вы получаете ошибку.
Одно из возможных решений - сделать ваш класс Parent
абстрактным и добавить в него абстрактный метод print()
, но в этом случае все подклассы должны переопределять этот метод:
abstract class Parent {
public void show() {
System.out.println("Show method in Parent class");
}
public abstract void print();
}
class Child extends Parent {
@Override
public void print() {
System.out.println("Print method in Child class");
}
}
public class Downcast {
public static void main(String[] args) {
Parent p1 = new Child();
p1.print();
}
}