tenho as seguintes classe:
public class AnimalTest {
//herda da classe Animal
Animal toto = new Cachorro();
toto.comida = "carne";
System.out.print("cachorro: ");
toto.fazerBaralho();
}
public abstract class Animal {
double peso;
String comida;
//métodos concretos
void dormir(){
System.out.println("Dormiu!");
}
//métodos abstrato
abstract void fazerBaralho();
}
public class Cachorro extends Animal{
double peso;
void fazerBaralho(){
System.out.println("Au, Au!");
}
}
Na parte do código da classe AnimalTest Animal toto = new Cachorro(); que vai da classe pai para a classe filho, rodou numa boa.
Mas nesse código:
public abstract class Sup {
abstract void who();
}
public class Sub1 extends Sup {
void who() {
System.out.println("who() in Sub1");
}
}
public class DynDispDemo {
public static void main(String args[]) {
Sub subOb1 = new Sub1();
subOb1.who();
}
}
Na classe DynDispDemo na parte Sub subOb1 = new Sub1(); está dando erro queria saber o porquê? tomando por exemplo a classe Animal, Cachorro o que muda é que tem variável de instancia e as classes sub, sub1 não tem.