by Alejandro Rodriguez 3 years ago
366
More like this
C++ soporta herencia permitiendo a una clase incorporar otra clase dentro de su declaración. Antes de discutir los detalles y la teoría, comencemos por un ejemplo de herencia. La siguiente clase, llamada vehiculo_rodante, define muy ampliamente a vehículos que viajan en la carretera. Este almacena el numero de ruedas que un vehículo tiene y el numero de pasajeros que puede llevar.
Tip: "Una clase base es heredada por una clase derivada" class vehiculo_rodante { int ruedas; int pasajeros; public: void set_ruedas(int num) { ruedas = num;} int get_ruedas() { return ruedas; } void set_pasajeros(int num) { pasajeros = num; } int get_pasajeros() { return pasajeros; } };
Puede usar esta amplia definición de un vehículo rodante para ayudar a definir tipos específicos de vehículos. Por ejemplo, el fragmento de código mostrado aqui podría usarse para ser heredado por una clase llamada 'camion'. class camion : public vehiculo_rodante { int carga; public: void set_carga(int size) { carga = size; } int get_carga() { return carga; } void mostrar(); };
Como 'camion' hereda de 'vehiculo_rodante', 'camion' incluye todo de 'vehiculo_rodante'. Entonces agrega 'carga' a la misma, en conjunto con las funciones miembros que trabajen sobre este dato. Nótese como 'vehiculo_rodante' es heredado. La forma general para la herencia se muestra aquí: class clase_derivada : acceso clase_base { cuerpo de la nueva clase }
Terminología importante Superclase: la clase cuyas características se heredan se conoce como superclase (o una clase base o una clase principal). Subclase: la clase que hereda la otra clase se conoce como subclase (o una clase derivada, clase extendida o clase hija). La subclase puede agregar sus propios campos y métodos además de los campos y métodos de la superclase. Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye parte del código que queremos, podemos derivar nuestra nueva clase de la clase existente. Al hacer esto, estamos reutilizando los campos/atributos y métodos de la clase existente.
Ejemplo de cómo usar la herencia en Java Ejemplo: Comencemos con un breve ejemplo que ilustra varias de las características clave de la herencia. El siguiente programa crea una superclase llamada DosDimensiones, que almacena el ancho y la altura de un objeto bidimensional, y una subclase llamada Triangulo. Observe cómo se usa la palabra clave extends para crear una subclase.
//Clase para objetos de dos dimensiones class DosDimensiones{ double base; double altura; void mostrarDimension(){ System.out.println("La base y altura es: "+base+" y "+altura); } }
//Una subclase de DosDimensiones para Triangulo class Triangulo extends DosDimensiones{ String estilo; double area(){ return base*altura/2; } void mostrarEstilo(){ System.out.println("Triangulo es: "+estilo); } } class Lados3{ public static void main(String[] args) { Triangulo t1=new Triangulo(); Triangulo t2=new Triangulo(); t1.base=4.0; t1.altura=4.0; t1.estilo="Estilo 1"; t2.base=8.0; t2.altura=12.0; t2.estilo="Estilo 2"; System.out.println("Información para T1: "); t1.mostrarEstilo(); t1.mostrarDimension(); System.out.println("Su área es: "+t1.area()); System.out.println(); System.out.println("Información para T2: "); t2.mostrarEstilo(); t2.mostrarDimension(); System.out.println("Su área es: "+t2.area()); } }
Información para T1: Triangulo es: Estilo 1 La base y altura es: 4.0 y 4.0 Su área es: 8.0 Información para T2: Triangulo es: Estilo 2 La base y altura es: 8.0 y 12.0 Su área es: 48.0