Dúvida Herança de classe com Interface

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?

Só uma pergunta:
O objeto “Dog” é instancia de quais dessas classes que você escreveu?
Se for a classe Cachorro ele só herdará métodos da classe Animal.
edit: Que por sua vez possui o método X, já que esta implementa a interface que define esse método.
Quanto a segunda pergunta: Java não tem herança multipla.

Abs,

Prezado denis,

Uma observação, uma classe não implementa outra classe, uma classe extende outra classe e/ou implementa uma ou mais interfaces.

Quanto às suas dúvidas:

A classe cachorro não recebe nada de canino, pois ela extende animal e canino tbm, ou seja, elas são irmãs.

Fiz um projeto básico e rápido no eclipse que vou anexar pra você dar uma olhada se é isso que você quis dizer.

Descomprime em algum lugar e depois no eclipse dá um import -> file system!

[quote=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?[/quote]

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:

[code]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();
}
}[/code]

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.