Загрузка данных


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);
    }
}