Sie sind auf Seite 1von 13

CONCEPTOS AVANZADOS DE LA PROGRAMACIN ORIENTADA A OBJETOS

Se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo mtodo de forma diferente

Los mtodos pueden ser identificados bajo el mismo nombre pero procesan informacin de manera diferente de acuerdo al objeto que lo contenga.

Sobrecarga

El trmino sobrecarga se refiere al uso del mismo identificador u operador en distintos contextos y con distintos significados. En el mbito de la POO, la sobrecarga de mtodos se refiere a la posibilidad de tener dos o ms mtodos con el mismo nombre pero funcionalidad diferente

Sobre-escritura

La sobre-escritura, se aplica a los mtodos y esta directamente relacionada a la herencia y se refiere a la re-definicin de los mtodos de la clase base en las clases derivadas.

public class Figura { protected double area; protected double perimetro; public Figura() { this.area=0; this.perimetro=0; } public double getArea() { return area; } public double getPerimetro() { return perimetro; } public void calcularArea() { } public void calcularPerimetro() { } } // termina class Figura

public class Circulo : Figura { private double radio; public Circulo() { super(); } public double getRadio() { return radio; } public void setRadio(double radio) { this.radio = radio; } public void calcularArea() { this.area = Math.PI*Math.pow(this.radio,2.0); } public void calcularPerimetro() { this.perimetro = 2*Math.PI*this.radio; } } // termina class Circulo

Ligadura dinmica

Permite invocar operaciones en objetos obviando el tipo actual de stos hasta el momento de la ejecucin del cdigo, es decir que me perite definir elementos como un tipo e instanciarlos como un tipo heredado

public class Empleado : Persona public class Persona { public string NombreComp; { private int NoEmp; public string NSS;

protected string Direccion;


private string Telefono; public string Email; private int Edad; public Persona() { } public Persona(string nombre, string email) { this.NombreComp = nombre; this.Email = email; } public virtual string Algo() { return "Viene de la clase base PERSONA"; } } } }

private string Puesto;


private string Depto; public Tarjeta objetoTarjeta = new Tarjeta(); public override string Algo() { return "Viene de Empleado"; }

public class Profe:Persona { public string IdProfesor; public override string Algo() { return "Viene de Profe"; }

Son clases(clases base) de las cuales otras clases heredan(clases derivadas) *(HERENCIA) Representan el nivel ms alto en una jerarqua de clases No pueden ser instanciadas: No se pueden crear

objetos de estas clases.

Puede contener mtodos abstractos: El mtodo

abstracto tiene firma (definicin) pero no cuerpo (implementacin). Las clases derivadas deben sobre escribir este mtodo.

Public abstract class Figura { protected double area; protected double perimetro; public Figura() { this.area=0; this.perimetro=0; } public double getArea() { return area; } public double getPerimetro() { return perimetro; } public abstract void calcularArea() ; public abstract void calcularPerimetro(); } // termina class Figura

public class Circulo : Figura { private double radio; public Circulo() { super(); } public double getRadio() { return radio; } public void setRadio(double radio) { this.radio = radio; } public override void calcularArea() { this.area = Math.PI*Math.pow(this.radio,2.0); } public override void calcularPerimetro() { this.perimetro = 2*Math.PI*this.radio; } } // termina class Circulo

Es una clase especial en la que solamente se definen los mtodos y propiedades que una clase que la implemente debe codificar Es un contrato de forma que cualquier clase que la implemente debe utilizar los miembros de la interfaz usando la misma forma en que sta la ha descrito: mismo nmero de argumentos, mismo tipo de datos devuelto, etc.

Gracias a la implementacin de interfaces podemos crear relaciones entre clases que no estn derivadas de la misma clase base, pero que tengan mtodos comunes, al menos en la forma, aunque no necesariamente en el fondo. No se pueden crear instancias directamente de una interfaz Las interfaces no contienen implementaciones de mtodos

public interface ITest { string HolaMundo(); string DevolverCadena(string s); } public class Minusculas : ITest { public string HolaMundo() { return ("hola, mundo"); } public string DevolverCadena(string s) { return s.ToLower(); } }

public class Mayusculas : ITest { public string HolaMundo() { return ("HOLA, MUNDO"); } public string DevolverCadena(string s) { return s.ToUpper(); } }

Das könnte Ihnen auch gefallen