В чем разница между перебросом и понижающим литьем по переменной класса?
Например, в следующем программном классе Animal содержит только один метод, но класс Dog содержит два метода, то как мы применяем переменную Dog к переменной Animal.
Если выполняется кастинг, то как мы можем вызвать метод Dog с помощью переменной Animal.
class Animal
{
public void callme()
{
System.out.println("In callme of Animal");
}
}
class Dog extends Animal
{
public void callme()
{
System.out.println("In callme of Dog");
}
public void callme2()
{
System.out.println("In callme2 of Dog");
}
}
public class UseAnimlas
{
public static void main (String [] args)
{
Dog d = new Dog();
Animal a = (Animal)d;
d.callme();
a.callme();
((Dog) a).callme2();
}
}