static void Main(string[] args) { Factura miFactura = new Factura(666); List <Documento> miListado = new List <Documento>(); miListado.Add(miFactura); Remito unRemito = new Remito(999); miListado.Add(unRemito); foreach (var item in miListado) { item.mostrar(); // ve solo ese atributo... del que heredab } FacturaA miFacA = new FacturaA(21, miFactura); FacturaAPagada miFacAPag = new FacturaAPagada("una fecha", miFacA); miListado.Add(miFacA); miListado.Add(miFacAPag); foreach (var item in miListado) { item.mostrar(); // ve solo ese atributo... del que heredab } Console.Read(); }
public FacturaAPagada(string fechaPago, FacturaA facA) : base(facA.iva, facA) { // se le puede pasar una factura a al base que pide una factura porque facturaA es una factura. // cualquiera de los hijos puede reemplazar al padre. // los protected solo se ven en los que son herencia directa }