Вы находитесь на странице: 1из 5

CLASES ABSTRACTAS

la palabra clave abstract permite crear clases y miembros de clase nicamente con propsitos de herencia: para definir caractersticas de clases derivadas, no abstractas. La palabra clave sealed permite impedir la herencia de una clase o de ciertos miembros de clase marcados previamente como virtuales. Clases y mtodos de clase abstractos Las clases se pueden declarar como abstractas. Esto se logra colocando la palabra clave abstract antes de la palabra clave class en la definicin de clase. Por ejemplo:
public abstract class A { // Class members here. }

No se pueden crear instancias de una clase abstracta. El propsito de una clase abstracta es proporcionar una definicin comn de una clase base que mltiples clases derivadas pueden compartir. Por ejemplo, una biblioteca de clase puede definir una clase abstracta que se utiliza como parmetro para muchas de sus funciones y solicitar a los programadores que utilizan esa biblioteca que proporcionen su propia implementacin de la clase mediante la creacin de una clase derivada. Las clases abstractas tambin pueden definir mtodos abstractos. Esto se consigue agregando la palabra clave abstract antes del tipo de valor que devuelve el mtodo. Por ejemplo:
public abstract class A { public abstract void DoWork(int i); }

Los mtodos abstractos no tienen ninguna implementacin, de modo que la definicin de mtodo va seguida por un punto y coma en lugar de un bloque de mtodo normal. Las clases derivadas de la clase abstracta deben implementar todos los mtodos abstractos. Cuando una clase abstracta hereda un mtodo virtual de una clase base, la clase abstracta puede reemplazar el mtodo virtual con un mtodo abstracto. Por ejemplo:
public class D { public virtual void DoWork(int i) { // Original implementation. } } public abstract class E : D { public abstract override void DoWork(int i); } public class F : E { public override void DoWork(int i) { // New implementation. } }

Si un mtodo virtual se declara abstracto, sigue siendo virtual para cualquier clase que se herede de la clase abstracta. Una clase que hereda un mtodo abstracto no puede tener acceso a la implementacin original del mtodo; en el ejemplo anterior, DoWork de la clase F no puede llamar a DoWork de la clase D. De esta forma, una clase abstracta puede obligar a las clases derivadas a proporcionar nuevas implementaciones de mtodo para los mtodos virtuales. Clases y miembros de clase sellados Las clases pueden declararse como selladas. Esto se logra colocando la palabra clave sealed antes de la palabra clave class en la definicin de clase. Por ejemplo:
public sealed class D { // Class members here. }

Una clase sellada no se puede utilizar como clase base. Por esta razn, tampoco puede ser una clase abstracta. Las clases selladas se utilizan principalmente para impedir la derivacin. Puesto que nunca se pueden utilizar como una clase base, algunas optimizaciones en tiempo de ejecucin pueden hacer que sea un poco ms rpido llamar a miembros de clase sellada. Un miembro de clase, mtodo, campo, propiedad o evento de una clase derivada que reemplaza a un miembro virtual de la clase base puede declarar ese miembro como sellado. Esto niega el aspecto virtual del miembro para cualquier clase derivada adicional. Esto se logra colocando la palabra clave sealed antes de la palabra clave override en la declaracin del miembro de clase. Por ejemplo:
public class D : C { public sealed override void DoWork() { } }

HERENCIA Las clases pueden heredar de otra clase. Para conseguir esto, se coloca un signo de dos puntos despus del nombre de la clase al declarar la clase y se denomina la clase de la cual se hereda (la clase base) despus del signo de dos puntos, del modo siguiente:
public class A { public A() { } } public class B : A { public B() { } }

La nueva clase (la clase derivada) obtiene todos los datos no privados y el comportamiento de la clase base, adems de todos los dems datos y comportamientos que define para s misma. La nueva clase tiene dos tipos efectivos: el tipo de la nueva clase y el tipo de la clase que hereda. En el ejemplo anterior, la clase B es claramente B y A. Cuando se tiene acceso a un objeto B, se puede utilizar la operacin de conversin de tipos para convertirlo en un objeto A. La conversin de tipos no cambia el objeto B, pero la vista del objeto B se restringe a los datos y comportamientos de A. Despus de convertir un objeto B en un objeto A, es posible volver a convertir ese objeto A en un objeto B. No todas las instancias de A se pueden convertir en B, slo aquellas que son realmente instancias de B. Si se tiene acceso a la clase B como tipo B, se obtienen los datos y comportamientos tanto de la clase A como de la clase B. La capacidad que tiene un objeto de representar ms de un tipo se denomina polimorfismo. POLIMORFISMO La combinacin de herencia y enlace dinmico se denomina polimorfismo. El polimorfismo es, por tanto, la tcnica que permite pasar un objeto de una clase derivada a funciones que conocen el objeto solamente por su clase base.

UNIVERSIDAD CESAR VALLEJO


FACULTAD DE INGENIERIA ESCUELA PROFESIONAL DE ING.DE SISTEMAS

PROGRAMACION ORIENTADO A OBJETOS

ALUMNO:
BETANCOURT SAUSEDO, JORGE.

DOCENTE:
Juan Carlos Obando

CHIMBOTE- PER 2008

Вам также может понравиться