É o método público (opção 5). Na interface, todos os métodos são implicitamente públicos. Logo para ele ser implementado pela classe C ele tem que ser público.
Quanto a questão de se o método está implementando da interface ou se está sobrescrendo da classe abstrata, na verdade está ocorrendo as duas coisas ao memo tempo. Ele está sobrescrevendo da classe abstrata E implementando da interface.
É da interface pois há interface obriga que o o metodo implementado seja público, a classe abstrata permite que o método continue como default.[/quote]
Essa sim para mim foi uma boa resposta. Porem será que ta correto mesmo?
então se houvesse um método void x() na Classe abstrata e o mesmo método na Interface quando sobrescrevermos esse método, ele sobrescreverá os 2 ?? Realmente tem muita lógica, afinal como os 2 são obrigatórios, se fosse realmente pra satisfazer um primeiro e outro depois, teríamos que ter 2 métodos iguais… o que é impossível de acontecer… é a explicação mais lógica até agora sem sombra de dúvidas, mas alguém tem algum material (na Web mesmo) que possa nos garantir isso pra não restar mais dúvidas ??
O melhor exemplo que achei trata-se de um caso de implementar duas interfaces com métodos com assinaturas iguais. É um caso diferente, mas ao meu ver completamente comparável.
[quote]
It is permitted for a single method declaration in a class to implement methods of more than one superinterface. For example, in the code:
interface Fish { int getNumberOfScales(); }
interface Piano { int getNumberOfScales(); }
class Tuna implements Fish, Piano {
// You can tune a piano, but can you tuna fish?
int getNumberOfScales() { return 91; }
}
the method getNumberOfScales in class Tuna has a name, signature, and return type that matches the method declared in interface Fish and also matches the method declared in interface Piano; it is considered to implement both.[/quote]
Legal todo mundo esta afiadissimo!Acho interessante postar aqui esse tipo de assunto especialmente para aqueles que como eu estão preste a fazer a prova,assim podemos discutir,discutir, ate dominar o assunto.Entao sem compilar de cara o que mostrar abaixo??
Na minha opnião vai dar erro de compilação ou será causado algum exceção em tempo de execução.
Primeiro vc serealiza em a instância de Carro c. O que será serealizado será Ferrari, e uma meta informação da classe, ou seja, o nome da classe d Dono. Depois vc disse que c2 receberá uma nova serealização e tenta ler nessa nova serealização.
Mas não tenho certeza quano se trata de Genéricos, serealização e Threads.
:roll:
[quote=anderson.bonavides]Na minha opnião vai dar erro de compilação ou será causado algum exceção em tempo de execução.
Primeiro vc serealiza em a instância de Carro c. O que será serealizado será Ferrari, e uma meta informação da classe, ou seja, o nome da classe d Dono. Depois vc disse que c2 receberá uma nova serealização e tenta ler nessa nova serealização.
Mas não tenho certeza quano se trata de Genéricos, serealização e Threads.
:roll:[/quote]
Cara c2 recebe uma deserializacao e nao uma serializacao cuidado…
[quote=anderson.bonavides]Fabio presta atenção nos System.out.println("Superclasse); ta faltando o ". É isso que to perguntando.
[/quote]
cara com certeza desculpas agora coloquei “” que faltava