Dicas rápidas de certificação C# 13: herança
- Campos/métodos/construtores private de uma superclasse não são acessíveis na subclasse
- A declaração de um campo numa subclasse com o mesmo nome e tipo de um campo private na superclasse esconde este último
- Um objeto não pode acessar os membros protected ou private de um outro objeto, mesmo que ambos sejam da mesma instâcia
- Recomenda-se que campos de uma classe não usem protected; eles devem ser private e ter acesso via métodos protected
- Métodos virtual têm que ter um corpo e não podem ser static nem private
- Métodos override têm que ter um corpo e não podem ser static nem private nem virtual
- É possível fazer o override de um método override
- O método override de uma subclasse tem que corresponder ao método virtual da superclasse em relação ao nome, parâmetros, tipo de retorno e modificador de acesso
- O modificador new, quando aplicado na definição de um método, esconde um método idêntico que venha a existir na classe base. Ele pode ser usado em métodos virtuais e não-virtuais.
- Warnings de compilação aparecem quando new é usado sem necessidade ou quando um método de uma classe filha esconde um método da classe pai sem a utilização de new. Para um método "esconder" o outro dessa maneira, não interessa o modificador
- O operador new pode ser usado para esconder campos e classes aninhadas
- O fato de uma classe ser sealed habilita otimizações do compilador
- Uma subclasse não pode ser mais acessível do que sua superclasse
[]s
-- AFurtado