Created by Thiago Russo
over 7 years ago
|
||
Question | Answer |
exemplo de base class Repository<T> que implementa IEntity |
Image:
Base Class (image/png)
|
exemplo de herança a partir de uma base class OrderRepository : Repository<Order> |
Image:
Herança (image/png)
|
FILHA E PAI OU BASE E DERIVADOS ? | Ao falar sobre a herança, os termos pai e filha são usadas frequentemente. Mas é a terminologia correta qdo se pensa em herança? Ex: um cão é um tipo de animal. Isto pode ser modelada usando uma relação de herança. No entanto, vc diria q um cão é um filho de um animal? A criança n é um tipo de pai. Em linguagens que suportam múltiplas coisas ficam ainda mais confusa herança. Em vez de usar Pai e filha ao definir uma relação de herança, vc pode usar melhor a base e derivada p/evitar qla confusão c/ a herança no mundo real. |
exemplo de como substituir ou estender um comportamento? | |
exemplo de como esconder explicitamente membros da classe base com o operador 'new' |
Image:
New Operator 1 (image/png)
|
exemplo de problema ao esconder explicitamente membros de uma classe base com 'new' |
Image:
New Operator (image/png)
|
abstract class exemplo e conceito |
Image:
Abstract (image/png)
|
sealed class conceito qual membro é implicitamente selado? | O contrário de uma classe abstrata é uma classe selada, q n pode ser derivada, n pode ser marcada como abstract e todos os membros devem ter uma implementação. Structs são implicitamente selados em C#. Nunca é possível herdar de um struct. Marcar de uma classe como sealed é uma boa prática. Se vc n fizer isso, outras pessoas podem começar a herança de sua classe sem q vc tenha pensado sobre isso. Se a herança é necessária, vc pode remover 'sealed' e pensar sobre as implicações. |
dica de exame classe abstrata x interface | Certifique-se de q vc sabe a diferença entre uma interface e uma classe abstrata. Uma interface n tem código de implementação. Uma classe abstrata pode optar por implementar métodos ou deixá-lo para a classe derivada. |
Princípio da substituição de Liskov O que é? | A herança é uma técnica poderosa, mas deve ser usada c/cautela. Ela deve ser usada somente qdo vc está lidando com um relacionamento "é-um-tipo de". O princípio da substituição Liskov afirma q uma subclasse deve ser utilizável em qlq lugar q vc pode usar uma das classes de base. Eles n devem, de repente mudar o comportamento q os usuários dependem. É fácil violar este princípio |
ex de violação do princípio de Liskov |
Want to create your own Flashcards for free with GoConqr? Learn more.