Olá como não achei nem um tópico com esta dúvida em especial (Caso tenha por favor gostaria do link), Gostaria de Saber como funcionam os construtores em Classes Abstratas … Tem ou Não tem? Sei que se ela possuir uma inner Class essa terá pois e apenas uma classe interna.
Tem sim, toda classe Java tem pelo menos 1 construtor.
A
Alergictoeng
Valeuzão mesmo!
Complementando a pergunta e fazendo outra …
Sendo assim posso instanciar minha classe abstrata?
Mais uma perguntinha capciosa … Interfaces não tem construto então?
Desculpa ai tantas duvidas mas como pode ver são as coisas que são implicitas … eu imagino a resposta de cada uma delas mas só quero a certeza de alguém com experiência …
Obrigado!
D
diogozero
Você não vai instanciar uma classe abstrata (nem pode)
O construtor dela vai ser herdado pelas classes concretas e essas sim você pode instanciar.
A
Alergictoeng
Aaaaaaa Beleza Valeuzão! =) Mas e as interfaces?
D
diogozero
Não, interfaces não tem construtor.
Em uma visão bem geral, as interfaces definem como a classe que vão implementar elas são acessadas.
Assim, classes que implementem a mesma interface podem ser acessadas da “mesma maneira”, pois terão os mesmos métodos da interface.
A
Alergictoeng
Agora sim um Valeuzão final!
Valeu pelas informações aos dois!
C
Clercio_Guiliche
Tanto as classes abstractas como as interfaces não tem construtores.
Porque nenhuma das duas pude ser instanciada (não se pode criar objectos a partir delas).
M
Michael_Kuhl
Por exemplo, Temos a classe Animal, classe Cachorro, classe Galinha e uma classe AnimalTest
então, na classe Animal, declaramos abstract void fazerBarulho();
na classe Cachorro extendemos com extends Animal
e colcoamos na classe Cachorro void fazerBarulho() { System.out.println("Au, Au, Au"); }
e fazemos isso na classe Galinha tbm.
Imagina, se não usarmos a herança, termos que criar uns 100 animais, quantos if(), else if e tals temos que colocar
para criarmos, todos os cachorros por exemplo latem, então não precisamos declarar a mesma coisa para varios animal que fazem a mesma coisa.
É isso ae!
PS: Na classe AnimalTest colocamos antes do método main public static void barulho(Animal animal) {
animal.fazerBarulho();
}
e depois só declaramos barulho(Nome do animal);
Se alguma coisa estiver errado, me corrijam, sou iniciante em java.
A
Andersonrms
Classes abstratas tb tem construtor. Se vc não declarar um explicitamente, o compilador criará um padrão (sem argumentos).
As classes abstratas não podem ser instanciadas. Porém quando uma classe filha é instanciada, o construtor da classe pai é chamado.