Ingeniería enDesarrollo de Software Ezequiel Arredondo Castillo Matricula AL10506174 Actividad 1 Herencia Cuadro comparativo de las caracteristicas de las diferentes clases TIPO DE CLASES DEFINICIÓN USO ALCANCE Normale s Es una plantilla para la creación de entidades u objetos existentes o representados en el mundo real. Ejemplo : Círculo, es un objeto identificable. Con características definidas. Para la representación de objetos o entidades con sus atributos y comportamiento específico. Abastra ctas Es una representación de conceptos los cuales no tienen una representación en el mundo real. Ejemplo : FiguraGeometrica. No existe una entidad específica llamada FiguraGeometrica, existen círculos cuadrados, etc. Proporcionar una definición Las clases abstractas común de una clase que sólo tienen étodos con sirva de patrón o base para alcance public o que las clases derivadas protected implementan el comportamiento previamente declarado. Define una forma estándar y pública de especificar el comportamiento de una clase, sin importar su ubicación en la jerarquía de clases. Para modelar herencia múltiple, imponiendo conjuntos múltiples de comportamientos a la clase. Para tener implementación de métodos similares en clases sin relacionar Interfac es Los miembros de la clase estándar o normales pueden tener cualquiera modificador de acceso. CARACTERÍSTICAS Puede heredar atributos y métodos. Pueden especializarse y heredarse sin tener un límite para ello. Pueden ser instanciadas. No se permite instanciar un objeto a partir de una clase abstracta. Los métodos que se definen como abstractos no se definen. Esto indica que toda clase que herede de él debe integrar el código para que realice su función. Todos sus métodos son Todos los métodos una interface públicos, para que son métodos abstractos ( firmas puedan ser de métodos sin implementación). implementados por otras Permite la implementación de clases. Todas la variables clases con comportamientos en una interface son comunes, sin importar su ubicación automáticamente public en la jerarquía de clases. final. Selladas Es una clase estándar o normal, con la diferencia que restringe la herencia lineal. En contras palabras no es posible la especialización de dicha clase. Para impedir la derivación o especialización. Obtener mejor desempeño u optimización en tiempo de ejecución. Los miembros de la clase No puede usarse como base en una estándar o normales jerarquía de herencia. Esta debe pueden tener cualquiera ser la última en la jerarquía lineal. modificador de acceso. Ejemplo de clase estandard, abastracta, interfaz, clase selladas Clase abstracta abstract class Persona { protected String nombre; protected char sexo; protected int edad; protected Double peso; protected Double estatura; public Persona(String nombre, char sexo, int edad, Double peso, Double estatura){ this.nombre=nombre; this.sexo=sexo; this.edad=edad; this.peso=peso; this.estatura=estatura; } public void comer(){ System.Console.WriteLine("He comido"); } public void crecer(int edad, Double peso, Double estaura){ this.edad=edad; this.peso=peso; this.estatura=estatura; System.Console.WriteLine("he crecido"); } public void dormir(){ System.Console.WriteLine("He dormido"); } /* Método abstracto sin implementar *---------------------------------------------*/ abstract public void reporducirse(); /* Set’s y Get’s * ------------------------------------------*/ public String Nombre{ get {return nombre;} set {nombre=value;} } public char Sexo{ get {return sexo;} set {sexo=value;} } public int Edad{ get {return edad;} set {edad=value;} } public Double Peso{ get {return peso;} set {peso=value;} } public Double Estatura{ get {return estatura;} set {estatura=value;} } } Clase normal class Alumno{ protected protected protected protected int idMatricula; int cicloEscolar; int idCarrera; Double promedio; public Alumno(int idMatricula, int cicloEscolar, int idCarrera, Double promedio) { this.idMatricula = idMatricula; this.cicloEscolar = cicloEscolar; this.idCarrera = idCarrera; this.promedio = promedio; } public int IdMatricula{ get {return idMatricula;} set {idMatricula=value;} } public int CicloEscolar{ get {return cicloEscolar;} set {cicloEscolar=value;} } public int IdCarrera{ get {return idCarrera;} set {idCarrera=value;} } public Double Promedio{ get {return promedio;} set {promedio=value;} } } Interfaz La interfaz es una clase que establece que comportamiento debe de realizar la clase que la implemente Como puede observarse nada mas se establecen los métodos sin implementar. interface Ciclista{ entrenar(); competir(); } Clase sellada La clase Difunto es está basada en la clase abstracta Persona.Sin embargo por ser una clase sellada no es posible seguir especializando dicha clase. Solo se pueden instanciar objetos a partir de ella. sealed class Difunto:Persona{ protected DateTime fechaDefuncion; protected String lugarDefuncion; protected String motivoDefuncion; public Difunto(String nombre, char sexo, int edad, Double peso, Double estatura, DateTime fechaDefuncion, String lugarDefuncion, String motivoDefuncion): base(nombre, sexo, edad, peso, estatura) { this.fechaDefuncion=fechaDefuncion; this.lugarDefuncion=lugarDefuncion; this.motivoDefuncion=motivoDefuncion; } } Semejanzas y difencias Clases estándares vs Clases selladas Las clases estándares son prácticamente iguales a las selladas la única diferencia es que en el caso de las clases selladas tienen la restricción de no poderse especializar o utilizarse para la generación de otra clase. Clases abstractas vs Interfaces. Todos los métodos de una interface son métodos abstractos mientras algunos métodos de una clase abstracta son métodos abstractos. Una interfaz puede definir constantes mientras que una clase abstracta puede tener campos o atributos. Las interfaces no tienen ninguna relación de herencia directa con una clase particular, se definen independientemente. Uso en la vida real de herencia simple, multiple y simple-múltiple Herencia simple Cuando uno hereda un bien a alguna otra persona o cuando uno le enseña algo o le comparte conocimiento. Herencia múltiple En el nacimiento de un hijo se da la herencia múltiple, ya que hereda características de sus dos padres. Herencia simple-múltiple Las características que hemos heredados de uno de nuestros padres que a su vez fue heredado de uno de nuestros abuelos.