Interfaces

4 respostas
elvishr

Quando uma classe abstrata implementa uma interface, ela herda os métodos abstratos na interface, esses métodos se não forem abstratos, devem ser implementados na subclasse que vai herdar essa classe abstrata???

Quer dizer, uma classe abstrata, quando implementa uma interface precisa implementar os métodos da interface? e esses métodos precisam ser abstratos???

:roll:

4 Respostas

ricardolecheta

1 - todos os metodos de uma interface sao automaticamente abstratos

2 - se vc implementar a interface e sua classe NAO for abstrata vc precisa implementar todos os metodos. Caso sua classe for abstrata vc nao é obrigado a implementar nada, e somente as suas subclasses nao-abstratas vão implementá-los

elvishr

Mas mesmo se não implementar nada na classe abstrata, a subclasse dela deverá implementar??

marciolx

“elvishr”:
Quando uma classe abstrata implementa uma interface, ela herda os métodos abstratos na interface, esses métodos se não forem abstratos, devem ser implementados na subclasse que vai herdar essa classe abstrata???

A frase “se não forem abstratos” não se aplica à interface, porque todos os métodos de uma interface são public e abstract. No caso de uma classe abstrata implementar uma interface, ela não precisa implementar os métodos da interface por ser ela mesma abstrata. Isso pode continuar pela hierarquia de classes até que a primeira classe não abstrata (concreta) da turma implemente todos os métodos (de superclasses abstratas e interfaces) que ficaram para trás.

“elvishr”:

Quer dizer, uma classe abstrata, quando implementa uma interface precisa implementar os métodos da interface? e esses métodos precisam ser abstratos???

:roll:

Não. Lembre-se que uma interface é como uma classe 100% abstrata. Se uma classe abstrata implementar uma interface ela tem 3 alternativas:

a) pode declarar os métodos que ela “herdou” da interface como abstratos, passando “para frente” a responsabilidade de implementá-los.

b) pode implementar estes métodos nela mesma.

c) pode declarar alguns dos métodos como abstratos e implementar o restante.

marciolx

Mas mesmo se não implementar nada na classe abstrata, a subclasse dela deverá implementar??

a subclasse dela deverá implementar a menos que essa subclasse seja também abstrata

Criado 18 de novembro de 2003
Ultima resposta 18 de nov. de 2003
Respostas 4
Participantes 3