Estoy tratando de crear un conjunto de clases donde un ancestro común es responsable de toda la lógica involucrada en el establecimiento de varias propiedades, y los descendientes simplemente cambian el acceso de las propiedades dependiendo de si se requieren en el descendiente particular.Cómo aumentar el modificador de acceso de una propiedad
Cuando trato de hacerlo como se muestra a continuación me sale un error de compilación: "no se puede cambiar modificadores de acceso Al reemplazar 'protegido' miembro heredado"
¿Hay una manera de lograr lo que estoy tratando de ¿hacer? Gracias
public class Parent
{
private int _propertyOne;
private int _propertyTwo;
protected virtual int PropertyOne
{
get { return _propertyOne; }
set { _propertyOne = value; }
}
protected virtual int PropertyTwo
{
get { return _propertyTwo; }
set { _propertyTwo = value; }
}
}
public class ChildOne : Parent
{
public override int PropertyOne // Compiler Error CS0507
{
get { return base.PropertyOne; }
set { base.PropertyOne = value; }
}
// PropertyTwo is not available to users of ChildOne
}
public class ChildTwo : Parent
{
// PropertyOne is not available to users of ChildTwo
public override int PropertyTwo // Compiler Error CS0507
{
get { return base.PropertyTwo; }
set { base.PropertyTwo = value; }
}
}
OOPS .. Segundos más rápido :) .. De todos modos el uso de nuevo no es lo mismo que anular; nuevo oculta al miembro padre y de esta manera ya no es polimorfismo. – Galilyou
@ José, gracias que hace lo que necesito. – WileCau