- Quando deve
implement
ouextend
ser usado? - Quais são alguns exemplos do mundo real?
Isso está correto?
A implementação parece ser uma forma de garantir que certos métodos existam em uma classe e que essas chamadas de função de métodos sejam formatadas corretamente. Implementar não é uma forma de passar variáveis ou "configurações" para a classe?
Cenário da vida real esperado: Tenho uma plataforma de e-commerce com várias classes de pagamento que seguem o mesmo design. Quando uma nova classe de pagamento deve ser adicionada, é realmente fácil seguir o design definido do interface
para garantir que todos os bits e peças estejam lá, desde o início.
Estender classes faz com que a classe estendida (filha?) Herde tudo de sua classe pai, exceto métodos e variáveis declarados como private
?
Cenário da vida real esperado: tenho uma classe chamada sessions
com duas classes filhas chamadas sessioncookies
e databasesessions
. sessioncookies
e databasesessions
, juntos, herdam várias opções de configuração mútuas de suas sessões pai, tornando mais fácil alterar uma opção de configuração para afetar todos os tipos de armazenamento de dados do visitante.