using static System.Console; using System.Collections.Generic; public class Program { public static void Main(string[] args) { var vizu = new Aluno() { Nome = "Joao Vizu", Ra = "N300361", NotaB1 = 7.5M, NotaB2 = 10M }; var lais = new AlunoTecnologo() { Nome = "Lais Silva", Ra = "545454", NotaB1 = 7.5M, NotaB2 = 10M, NotaPim = 9M }; var dao = new AlunoDao(); dao.Adicionar(vizu); dao.Adicionar(lais); foreach (Aluno aluno in dao.Listar()) WriteLine($"Nome: {aluno.Nome}\tNotaB1: {aluno.NotaB1}\tNotaB2: {aluno.NotaB2}\tMedia: {aluno.Media}"); } } public class Aluno { public string Nome { get; set; } public string Ra { get; set; } public decimal NotaB1 { get; set; } public decimal NotaB2 { get; set; } public virtual decimal Media => (NotaB1 + NotaB2) / 2; } public class AlunoTecnologo : Aluno { public decimal NotaPim { get; set; } public override decimal Media => NotaPim * 0.2m + base.Media; } public class AlunoDao { private List alunos; public AlunoDao() => alunos = new List(); public void Adicionar(Aluno aluno) => alunos.Add(aluno); public List Listar() => new List(alunos); } //https://pt.stackoverflow.com/q/404829/101