140 likes | 275 Views
Herança em C#. Herança. A herança , juntamente com o encapsulamento e polimorfismo , é um dos três características primárias (ou pilares de ) da programação orientada a objeto
E N D
Herança • A herança, juntamente com o encapsulamento e polimorfismo, é um dos três características primárias (ou pilares de ) da programação orientada a objeto • A herança permite que criar novas classes que reutilizem, estendam e modifiquem um comportamento que é definido em outras classes.
Herança • A classes que é herdada é chamada de • Classe base • Classe Pai • Classe Mãe • Super Classe • A classe que herda de outra classe é chamada de: • Classe derivada • Classe Filho • Sub Classe
Herança • Conceitualmente, uma classe derivada é uma especialização da classe base. • C# não aceita herança múltipla, apenas herança simples
Herança em C# • Classe base
Herança em C# • Classe derivada
Modificadores de Acesso • Em C# existem o seguintes modificadores de acesso • public • Um método definido como Public pode ser acessado por qualquer classe de qualquer projeto • private • Este modificador é o mais restrito, somente a classe onde ele foi definido é que pode acessá-lo, nenhuma outra tem permissão, nem mesmo as classes que herdam da classe onde o método foi definido.
Modificadores de Acesso • protected • Somente as classes que herdam da classe que contem o método protegido (protected) tem permissão para acessá-lo. • internal • Os métodos deste tipo somente podem ser acessados por classes que pertencem ao mesmo assembly que eles, com ou sem herança. • protected internal • É a soma dos dois anteriores (Protected e Internal), estes métodos podem ser acessados por todas as classes contidas no assembly, com ou sem herança. Também podem ser acessados por classes externas ao assembly, mas que herdam o método.
Construtores • Instanciar um objeto de uma classe derivada inicia uma cadeia de chamadas de contrutores. • Antes de realizar suas tarefas o contrutor da classe derivada invoca o construtor da classe base • Assim, podemos dizer que sempre que criamos um objeto da classe derivada estamos criando também um objeto da classe base