Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
564
Semestre: Tercero
CLASE VIRTUAL
La palabra clave virtual se utiliza para modificar un mtodo, propiedad,
indizador o declaracin de evento y permite invalidar cualquiera de estos
elementos en una clase derivada. En el siguiente ejemplo, cualquier clase que
hereda este mtodo puede reemplazarlo:
public virtual double Area()
{
return x * y;
}
class TestClass
{
public class Shape
{
public const double PI = Math.PI;
protected double x, y;
public Shape()
{
}
public Shape(double x, double y)
{
this.x = x;
this.y = y;
}
{
}
}
}
return 2 * PI * x * x + 2 * PI * x * y;
Las propiedades abstractas funcionan como los mtodos abstractos, salvo las
diferencias en la sintaxis de las declaraciones y llamadas.
Una clase abstracta que implementa una interfaz podra asignar los mtodos
de la interfaz a mtodos abstractos.
namespace @abstract
{
class Program
{
abstract class BaseClass // Abstract class
{
protected int x;
protected int y;
public abstract void AbstractMethod(); // Abstract method
public abstract int X { get; }
public abstract int Y { get; }
}
class DerivedClass : BaseClass
{
public override void AbstractMethod()
{
x++;
y++;
}
public override int X // overriding property
{
get
{
return x + 10;
}
}
public override int Y // overriding property
{
get
{
return y + 10;
}
}
static void Main()
{
Console.WriteLine("\nIngrese los datos: ");
DerivedClass o = new DerivedClass();
o.x = int.Parse(Console.ReadLine());
o.y = int.Parse(Console.ReadLine());
o.AbstractMethod();
Console.WriteLine("x = {0}, y = {1}", o.X, o.Y);
Console.ReadKey();
}
}
}