Olá galera
Gostaria que alguém esclarece uma dúvida minha. Pois bem vamos lá. Criei um pacote e dentro duas classes. Uma com o modificador não-referente abstract e outra concreta. Sei que uma classe abstract não pode ser instanciada jamais em uma classe concreta. Eis a minha experiência.
Minha classe abstract
package java_6_Cap1;
public abstract class CarroAbstrato {
abstract void calcularConsumo();
abstract void calcularVelocidade();
void imprimirMensagem() {
System.out.println("Estamos na classe Carro");
}
}
Vou estendê-la a partir de outra classe em outro pacote
import java_6_Cap1.CarroAbstrato;
public class TesteCarroAbstrato extends CarroAbstrato {
void calcularVelocidade(){}
void calcularConsumo(){}
}
class Teste {
public static void main(String...args) {
TesteCarroAbstrato tc = new TesteCarroAbstrato();
System.out.println(tc.imprimirMensagem());
}
}
O que acontece pessoal é que o compilador reclama que a classe TesteCarroAbstrato não é uma classe abstract e não pode sobrescrever o método calcularVelocidade(). Se coloco as duas em um mesmo pacote roda direitinho. Posso concluir então que somente é possivel rodar um programa que tenha uma classe concreta estendendo uma classe abstrata desde que as duas estejam no mesmo pacote? Ou se estiver errado, alguém poderia apontar onde está o errro e onde posso corrigir.
Estou aguardando um feedback. Obrigado por enquanto