denisspitfire:
Estrutura.
Animal(super classe e implementa outra classe que tem o método (x))
canino (extende animal e implementa outra classe que também tem um método chamado (x))
cachorro (extende animal)
Dúvida... o objeto Dog, recebe os métodos implementados pela classe canino?
Agora... se sim... como posso diferenciar se é da super... ou se é da canino?
isso também não seria herança multipla?
Oi!
Isso seria uma herança multipla:
class Dog extends Canino, Animal {}
Em relação aos métodos herdados, se você der um super.metodo(), ele invoca o primeiro método que é implementado por uma classe concreta Pai.
Veja, algo assim:
public class TestClass {
public static void main(String[] args) {
Z zClass = new Z();
zClass.print();
}
}
class X {
void print() {
System.out.println("Olá x");
}
}
class Y extends X {
}
class Z extends Y {
void print() {
super.print();
}
}
A classe Z vai invocar o método print() da classe Pai, Y, mas a classe pai Y não possui implementação do método, herda apenas.
Portanto, o resultado será "Olá x". Se sobrescrever o método na classe Y, ai sim, ele termina a execução ali, consegue entender?
E não existe herança múltipla em Java!.
Abraços.