class Fruit { void method() { System.out.println("Fruit::method()"); } }
class Apple extends Fruit { void method() { System.out.println("Apple::method()"); } }
class Antonovka extends Apple { void method() { System.out.println("Antonovka::method()"); } }
class Lemon extends Fruit { void method() { System.out.println("Lemon::method()"); }}
public class Main {
public static void doAction(Fruit fruit) {
if (fruit instanceof Fruit)
System.out.println("Apple is InstanceOf Fruit");
if (fruit instanceof Apple) {
// for BaseCourse and FreeCourse
Apple base = (Apple) fruit;
base.method();
} else if (fruit instanceof Lemon) {
Lemon lemon = (Lemon) fruit;
lemon.method();
} else {
// for Course or null
}
}
public static void main (String[] args){
Fruit course = new Apple();
doAction(course);
}
}