No PHP 7 as interfaces especificam quais métodos uma classe ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a A. No contexto das interfaces em PHP 7, uma interface é um contrato que especifica quais métodos uma classe deve implementar, sem fornecer a implementação desses métodos. As interfaces são fundamentais no estabelecimento de um design de software consistente e na promoção do conceito de programação orientada a objetos, especialmente quando se trata de herança e polimorfismo.
É importante saber que as interfaces:
- Não podem conter implementação de métodos, ou seja, todos os métodos declarados em uma interface devem ser públicos e abstratos, o que significa que não têm um corpo de método definido.
- Não podem conter variáveis, mas são permitidas constantes. As constantes em interfaces são, por natureza, públicas e não podem ser alteradas.
A razão pela qual a alternativa A é a correta é que, em PHP, as interfaces podem, de fato, ser estendidas por outras interfaces usando o operador extends. Isso permite a criação de interfaces mais específicas baseadas em interfaces mais genéricas, promovendo a reutilização e a organização do código. Ao estender uma interface, a nova interface herda todos os métodos abstratos da interface pai, que então devem ser implementados por classes que implementam a interface filha.
As demais alternativas são incorretas porque:
- As interfaces não podem ter métodos privados ou protegidos, apenas públicos (alternativa B).
- Uma interface pode ser implementada por múltiplas classes, não havendo limitação para a quantidade de implementações (alternativa C).
- Interfaces não podem conter métodos implementados; todos devem ser abstratos (alternativa D).
- Embora interfaces não possam conter variáveis, elas podem conter constantes (alternativa E).
Entendendo estas características, você poderá trabalhar com interfaces no PHP 7 de maneira eficaz, aproveitando os recursos de programação orientada a objetos para criar códigos mais limpos, modulares e fáceis de manter.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Interfaces de objetos
Permitem a criação de códigos que especificam quais métodos uma classe deve implementar, sem definir como esses métodos serão tratados.
Interfaces são definidas da mesma forma que classes, mas com a palavra-chave interface substituindo class e com nenhum dos métodos tendo seu conteúdo definido.
Todos os métodos declarados em uma interface devem ser públicos, essa é a natureza de uma interface.
Para implementar uma interface, o operador implements é utilizado.
Interfaces podem ser estendidas como as classes, usando o operador extends. Letra A
Fonte: http://php.net/manual/pt_BR/language.oop5.interfaces.php
(A) [ GABARITO ] No Java pode, no PHP também. Assim como no Java o operador é o extends.
http://php.net/manual/pt_BR/language.oop5.interfaces.php
(B) [ ERRADO ] Somente públicos.
(C) [ ERRADO ] Podem ser implementadas por mais de uma classe.
(D) [ ERRADO ] Não podem conter métodos implementados.
(E) [ ERRADO ] Podem conter constantes, assim como no Java, mas não variáveis.
Cleiton Bittencourt, no Java o operador para interface é IMPLEMENTS.
Yuri, no Java você pode fazer uma interface estender outra como no exemplo abaixo:
public interface DoItPlus extends DoIt {
boolean didItWork(int i, double x, String s);
}
Depois uma classe pode implementar a referida interface com o implements.
public class ClasseImplementadora implements DoItPlus {
boolean didItWork(int i, double x, String s) {
// implementacao ...
}
}
Fonte: https://docs.oracle.com/javase/tutorial/java/IandI/nogrow.html
Toda interface tem:
1 - Método 100% abstratos, isto é, não implementados.
2 - Todos os métodos são públicos.
3 - Podem ter constantes ou variáveis.
GABARITO: A
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo