Galera eu queria alguns exemplos de heranças multiplas em que eu possa implementar.
Quem poder me ajudar com algumas ideias eu agradeceria.
:?
Galera eu queria alguns exemplos de heranças multiplas em que eu possa implementar.
Quem poder me ajudar com algumas ideias eu agradeceria.
:?
exemplo: temos a classe Pessoa, Funcionario, Professor
public class funcionario extends pessoa{
}…
public class professor extends funcionario{
}…
Java não suporta Herança Multipla nativamente.
mfp.c, isso nao é herança multipla.
[quote=blima10]Galera eu queria alguns exemplos de heranças multiplas em que eu possa implementar.
Quem poder me ajudar com algumas ideias eu agradeceria.
:?[/quote]
Como já foi dito em Java não existe herança multipla como em C++, por exemplo.
Você pode “simular” herança multipla através de interfaces, definindo assim multiplos comportamentos para seu objeto.
Exemplo:
public interface FerramentaDeCorte {
public double getCapacidadeDeCorte();
}
public interface FerramentaPneumatica {
public double getPressaoAr();
}
public class AlicatePneumatico implements FerramentaDeCorte , FerramentaPneumatica {
public double getCapacidadeDeCorte() {return 0.0;}
public double getPressaoAr() {return 0.0;}
}
Galera eu sei q nao existi herança multipla em java.
Eu flo assim pq eh parecido…
Obrigado pela atenção…
Confira exemplos aqui:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html
Digamos…
public class ArrayList
extends AbstractList
implements List, RandomAccess, Cloneable, Serializable
Um ArrayList se comporta como uma Collection e/ou uma List e/ou um objeto Cloneable e/ou um Serializable e/ou um RandomAccess, sem falar no AbstractList.
Agora…
public class LinkedHashSet
extends HashSet
implements Set, Cloneable, Serializable
Um LinkedHashSet se comporta como uma Collection e/ou um Set e/ou …
Eu acredito que a “herança múltipla” do Java seja quando você usa dois ou mais super classes. Isso seria usar 2 ou + implements, ou 1 extends e mais (ou um) implements.
Nos casos que vc citou há apenas uma super classe.
Mas não é assim não. As interfaces especificam apenas um “contrato” entre o objeto que implementa e os clientes que a utilizam. Uma classe que começa com “public class MinhaClasse implements Comparable” tem como superclasse a classe Object, e nada mais.
Nossa, falei coisa realmente errada. Eu devia nem estar prestando atenção ou pensando direito… até porque interfaces não tem construtor, certo? Então não teria como usar o super(). Só métodos dele?
Então no Java realmente não existe herança múltipla. Só existe herança então quando usamos extends, né?
Ou, eu acho que na verdade existe sempre herança, porque sempre teremos a classe Object como pai, não é?
[quote=blima10]Galera eu sei q nao existi herança multipla em java.
Eu flo assim pq eh parecido…
Obrigado pela atenção…[/quote]
class Carro{
void cor(){}
void marca(){}
void dataFabricacao(){}
}
class Fiesta extends Carro implements Personalizar{
public void som(){}
public void porta(){}
public void farol(){}
}
interface Personalizar{
void som();
void porta();
void farol();
}
flw!!!
[quote=LPJava]
class Carro{
void cor(){}
void marca(){}
void dataFabricacao(){}
}
class Fiesta extends Carro implements Personalizar{
public void som(){}
public void porta(){}
public void farol(){}
}
interface Personalizar{
void som();
void porta();
void farol();
}
flw!!![/quote]
Um parênteses: Sua interface ficaria melhor com o nome Personalizavel , Personalizar é uma ação.
interface Personalizavel {
void som();
void porta();
void farol();
}
Pow kra nesse caso você uso na interface apenas metodos da class Fiesta.
cm eu faria para usa metodos da class Carro?
Pow essa eh a unica coisa q tah faltando pra mim…
Agradeço c poder me ajudar…
Abraço…
[quote=blima10]Pow kra nesse caso você uso na interface apenas metodos da class Fiesta.
cm eu faria para usa metodos da class Carro?
Pow essa eh a unica coisa q tah faltando pra mim…
Agradeço c poder me ajudar…
Abraço…[/quote]
é somente vc subscrever o metodo… veja se é isso:
class Fiesta extends Carro implements Personalizar{
public void som(){}
public void porta(){}
public void farol(){}
void cor(){//subscrita}
void marca(){//subscrita}
}
valeu pela dica, preciso estudar nomeações
flw!