

















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
material sobre herança com a linguagem c#
Tipologia: Esquemas
1 / 25
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Herança
Exemplo
Demo
Vamos implementar as classes
Account e BusinessAccount e fazer
alguns testes.
Modificadores de acesso
própria classe subclasses no assembly
classes do assembly
subclasses fora do assembly
classes fora do assembly
public x x x x x
protected internal x x x x
internal x x x
protected x x x
private protected x x
private x
Account:
public virtual void Withdraw(double amount) { Balance -= amount + 5.0; }
SavingsAccount:
public override void Withdraw(double amount) { Balance -= amount; }
Palavra base
É possível chamar a implementação da superclasse usando a palavra base.
public override void Withdraw(double amount) { base.Withdraw(amount); Balance -= 2.0; }
Recordando: usando base em construtores
class BusinessAccount : Account { public double LoanLimit { get; set; }
public BusinessAccount() { }
public BusinessAccount(int number, string holder, double balance, double loanLimit) : base(number, holder, balance) { LoanLimit = loanLimit; }
(...)
Código fonte desta aula
Exemplo - Classe selada
Suponha que você queira evitar que
sejam criadas subclasses de
SavingsAccount
namespace Course {
sealed class SavingsAccount {
(...)
Exemplo - método selado
Suponha que você não queira que o método Withdraw de
SavingsAccount seja sobreposto novamente
public sealed override void Withdraw(double amount) {
base.Withdraw(amount);
Balance -= 2.0;
}
Memória
Stack Heap
Account acc1 = new Account(1001, "Alex", 500.0); Account acc2 = new SavingsAccount(1002, "Anna", 500.0, 0.01);
acc1.Withdraw(10.0); acc2.Withdraw(10.0);
public virtual void Withdraw(double amount) { Balance -= amount + 5.0; }
public override void Withdraw(double amount) { base.Withdraw(amount); Balance -= 2.0; }
Importante entender
Enter the number of products: 3 Product #1 data: Common, used or imported (c/u/i)? i Name: Tablet Price: 260. Customs fee: 20. Product #2 data: Common, used or imported (c/u/i)? c Name: Notebook Price: 1100. Product #3 data: Common, used or imported (c/u/i)? u Name: Iphone Price: 400. Manufacture date (DD/MM/YYYY): 15/03/
Tablet $ 280.00 (Customs fee: $ 20.00) Notebook $ 1100. Iphone (used) $ 400.00 (Manufacture date: 15/03/2017)