Está en la página 1de 15

Herencia

Brian Steven Cañón Rojas

Universidad Distrital Francisco José de Caldas


Facultad Tecnológica
Tecnología en sistematización de datos
Bogotá D.C
2019
Herencia

Brian Steven Cañón Rojas

Informe

Johanna del Pilar Dueñas Galindo

Universidad Distrital Francisco José de Caldas


Facultad Tecnológica
Tecnología en sistematización de datos
Bogotá D.C
2019

2
CONTENIDO
Pág.
1. INTRODUCCIÓN.........................................................................................................6
2. OBJETIVOS ...................................................................................................................7
2.1 OBJETIVO GENERAL ............................................................................................. 7
2.2 OBJETIVOS ESPECÍFICOS .................................................................................... 7
4. MARCO TEÓRICO .........................................................................................................8
4.1 HERENCIA............................................................................................................... 8
4.2 SUPERCLASES Y SUBCLASES ............................................................................. 8
4.3 HERENCIA SIMPLE Y COMPUESTA ...................................................................... 9
4.4 SOBREESCRITURA DE MÉTODOS ..................................................................... 10
4.5 SOBRECARGA DE OPERADORES ...................................................................... 11
4.5 POLIMORFISMO ................................................................................................... 12
4.5 CLASES ABSTRACTAS Y MÉTODOS ABSTRACTOS ......................................... 12
CONCLUSIONES .............................................................................................................14
BIBLIOGRAFÍA.................................................................................................................15

3
LISTA DE FIGURAS
Pág.
Figura 1: Ejemplo de una superclase y subclase. ..............................................................9
Figura 2: Ejemplo de una herencia simple y una múltiple o compuesta. ............................9

4
RESUMEN

La herencia en programación orientada a objetos es fundamental, ya que, esta nos


permite pasar atributos y métodos entre clases, donde permite el desarrollo de un
programa dinámico y estable el cual funciona a partir de la interacción entre dos
clases mediante herencia.

PALABRAS CLAVE: Programación, desarrollo, objeto, lenguaje.

5
1. INTRODUCCIÓN

La programación orientada a objetos a lo largo del tiempo ha sido fundamental


para las ciencias de la computación, a través de su desarrollo la programación
orientada a objetos o POO como lo indican sus siglas, se basa en programar
objetos, los cuales estos objetos pueden ser cualquier cosa en la vida real, por lo
general la programación orientada a objetos busca simplificar el mundo en un
bloque de sentencias o código para así facilitar determinadas tareas, donde la
interacción entre objetos (clases) es fundamental ya que esta permite realizar un
programa dinámico y bastante completo, siendo así la herencia un ítem
fundamental de la programación orientada a objetos, gracias a la herencia hoy en
día podemos hablar de una interacción entre dos clases la cual una le pasa
atributos y métodos donde la otra trabaja con esos desde el inicio.

6
2. OBJETIVOS

2.1 OBJETIVO GENERAL

Entender más acerca de la interacción entre clases, en específico la herencia.

2.2 OBJETIVOS ESPECÍFICOS

Entender qué es la herencia, para qué se usa, como se usa y por qué se usa.

7
4. MARCO TEÓRICO

4.1 HERENCIA

“La herencia es específica de la programación orientada a objetos, donde una


clase nueva se crea a partir de una clase existente. La herencia (a la que
habitualmente se denomina subclase) proviene del hecho de que la subclase (la
nueva clase creada) contiene las atributos y métodos de la clase primaria.”
(CCM.Net , 2017), es decir la herencia es aquella que me permite heredar
determinadas propiedades a otra u otras clases desde una clase principal o
primaria.

Ejemplo: Suponga que usted desea desarrollar el modelado de una empresa


donde cada persona puede ser un empelado o un jefe y demás, para facilitar la
creación de objetos individuales como empleado o jefe, se usara una clase
primaria o base como lo es la clase “Persona” y esta podrá dar herencia a los
distintos objetos del programa durante su ejecución, siendo la representación de
esto así:

4.2 SUPERCLASES Y SUBCLASES

Las superclases y subclases hacen respuesta a una jerarquía de clases cuando se


habla de herencia y demás, esta jerarquía se clasifica en:

 SUPERCLASE: Una superclase o clase padre, es una clase principal o


base la cual, cuando se realiza una herencia, esta da a heredar sus
atributos y métodos a las subclases o clases hijas donde está siempre será
la principal.
 SUBCLASE: Una subclase o clase hija, es una clase la cual recibe toda la
herencia de la clase padre o la superclase y trabaja con estos atributos y
métodos heredados.

Ejemplo: Suponga que desea modelar un sistema donde la clase A es una clase
padre y las clases B, C Y D son clases hijas, pero a su vez la clase D es una clase
padre para la clase E, la representación de este ejemplo sería así:

8
Figura 1: Ejemplo de una superclase y subclase.

4.3 HERENCIA SIMPLE Y COMPUESTA

En poo se pueden trabajar dos tipos de herencias, la simple y la compuesta, a


continuación, se explicarán estos dos tipos de herencia:

 HERENCIA SIMPLE: Se considera herencia simple cuando una clase


padre únicamente da a heredar sus métodos y atributos a una única clase.
 HERENCIA COMPUESTA: Se considera herencia compuesta o múltiple
cuando una clase padre hereda sus métodos y atributos a varias clases
hijas.

Ejemplo: En la parte derecha se puede ver una herencia compuesta y en la


izquierda una simple.

Figura 2: Ejemplo de una herencia simple y una múltiple o compuesta.

9
4.4 SOBREESCRITURA DE MÉTODOS

Una subclase hereda todos los métodos de su superclase que son accesibles a
dicha subclase a menos que la subclase sobrescriba los métodos. Una subclase
sobrescribe un método de su superclase cuando define un método con las mismas
características (nombre, número y tipo de argumentos) que el método de la
superclase, las subclases emplean la sobreescritura de métodos la mayoría de las
veces para agregar o modificar la funcionalidad del método heredado de la clase
padre (Programación con Java, 2019).

Ejemplo: Realizar una sobre escritura de métodos de una clase A a una B.


class ClaseA
{
void miMetodo(int var1, int var2)
{ ... }

String miOtroMetodo( )
{ ... }
}

class ClaseB extends ClaseA


{
/* Estos métodos sobreescriben a los métodos
de la clase padre */

void miMetodo (int var1 ,int var2)


{ ... }

String miOtroMetodo( )
{ ... }
}

10
4.5 SOBRECARGA DE OPERADORES

“La sobrecarga de operadores es uno de los mecanismos que nos permite ampliar
las capacidades de los lenguajes de programación orientados a objetos. En C++,
la declaración y definición de una sobrecarga de operador es muy similar a la
declaración y definición de una función cualquiera.” (WikiLibros, 2019), en cierta
forma la sobrecarga de operadores es útil a la hora de trabajar distintos valores de
un objeto con otro objeto.

Ejemplo: Suponga que desea sumar los dos atributos de una pareja A y una
pareja B usando una tercera pareja.

#include <iostream>
using namespace std;
class Pareja {
public:
double a, b;
// constructor parametrizado
Pareja(const double a,const double b)
{
this->a = a;
this->b = b;
}
};
// Sobrecarga del operador +
Pareja operator +(const Pareja &p1,const Pareja &p2)
{
Pareja res( p1.a + p2.a, p1.b + p2.b );
return res;
}
int main()
{ Pareja A(50, 75 ); Pareja B(150, 175 ); Pareja C = A + B;
cout << "A = " << A.a << ',' << A.b << "\n";
cout << "B = " << B.a << ',' << B.b << "\n";
cout << "C = " << C.a << ',' << C.b << "\n";
return 0;}

11
4.5 POLIMORFISMO

El polimorfismo en POO, se puede decir que son las distintas formas en las que se
puede presentar un objeto, es decir suponga que usted tiene un automóvil, pero
este puede ser de tipo camioneta, deportivo y demás, el polimorfismo es uno de
los pilares de POO, puesto que, permite modelar las infinitas formas que
presentan los objetos en un desarrollo de POO.

Ejemplo: Un ejemplo claro de polimorfismo es una clase vehículo, pero recuerde


que hay varios tipos de automóvil, como lo son un avión, carro, moto y demás,
donde este objeto principal podrá heredar algunos atributos a sus clases hijas
como lo son un carro y demás.

4.5 CLASES ABSTRACTAS Y MÉTODOS ABSTRACTOS

Las clases abstractas “son aquellas que por sí mismas no se pueden identificar
con algo 'concreto' (no existen como tal en el mundo real), pero sí poseen
determinadas características que son comunes en otras clases que pueden ser
creadas a partir de ellas” (InformaticaPC.com, 2019) , es decir estas responden al
principio del polimorfismo donde se ve claramente las múltiples formas en las que
se puede presentar un objeto y así programar estas, cabe destacar que estas
clases abstractas poseen métodos abstractos los cuales son:

 MÉTODOS ABSTRACTOS: Un método abstracto, es un método declarado,


pero no implementado, es decir, es un método del que solo se escribe su
nombre, parámetros y tipo devuelto, pero no su código.
Un método se declara como abstracto porque en ese momento (en esa
clase) no se conoce cómo va a ser su implementación

EJEMPLO: Una implementación de todo esto podría ser:

class Abstracta
{
public:
virtual int metodo() = 0;
};
class ConcretaA : public Abstracta
{
public:
int metodo()
{
//haz algo

12
return foo () + 2;
}
};
class ConcretaB : public Abstracta
{
public:
int metodo()
{
//otra implementación
return baz () - 5;
}
};

13
CONCLUSIONES

A modo de conclusión se puede decir la programación orientada a objetos es un


modelo muy funcional que permite convertir grandes problemas en problemas más
simples y dividirlo en partes más pequeñas, donde una de las grandes ventajas
que presenta la programación orientada a objetos es la herencia, la cual permite
que podamos crear sistemas reales basados en objetos primarios y secundarios
para realizar así la modelación de un mundo más complejo a uno más simple.

14
BIBLIOGRAFÍA
CCM.Net . (13 de 07 de 2017). CCM.Net . Obtenido de POO - Herencia:
https://es.ccm.net/contents/411-poo-herencia
InformaticaPC.com. (27 de 07 de 2019). InformaticaPC.com. Obtenido de
Introducción a la Programación Orientada a Objetos (POO) y UML:
https://informaticapc.com/poo/clases-abstractas.php
Programación con Java. (27 de 09 de 2019). Programación con Java. Obtenido de
Sobreescritura de métodos: http://profesores.fi-
b.unam.mx/carlos/java/java_basico4_7.html
WikiLibros. (17 de 05 de 2019). WikiLibros. Obtenido de Programación en
C++/Sobrecarga de Operadores:
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Sobreca
rga_de_Operadores

15

También podría gustarte