clase09_20131_Herencia

Páginas: 13 (3162 palabras) Publicado: 28 de enero de 2016
Informática II
Clase 9: Herencia

1

CONTENIDO

1

Zona Preguntas

2

Herencia

3

Redefinición de métodos

4

Métodos ocultos

5

Funciones Virtuales

2

ZONA DE PREGUNTAS
1. Cuando se llama el constructor de copia?
2. Qué es Poliformismo?
3. Que es el puntero this ?
4. ¿Cómo se puede diferenciar entre la
sobrecarga del operador prefijo y sufijo?

3

CONTENIDO

1

Zona Preguntas

2

Herencia3

Redefinición de métodos

4

Métodos ocultos

5

Funciones Virtuales

4

HERENCIA
Diferentes tipos de objetos usualmente
comparten características similares entre
sí.
La herencia permite generar nuevas clases
tomando como base otra clase ya
implementada.
También hace posible la implementación de
jerarquías desde la generalización hasta la
especialización de los objetos.
5

HERENCIA
La POOpermite a las clases
heredar las características y
los comportamientos de
otras clases

Estas
modificaciones
consisten
habitualmente en
añadir nuevos
miembros a la
nueva clase

Adicionalmente
C++, permite
definir una clase
modificando una
o más clases ya
existentes.
6

HERENCIA
• La clase de la que se parte en este proceso
recibe el nombre de clase base, y la nueva
clase que se obtiene se denominaclase
derivada. Ésta a su vez puede ser clase base
en un nuevo proceso de derivación, iniciando
de esta manera una jerarquía de clases.

DECLARACIÓN DE HERENCIA
• Cuando se declara una clase, es posible indicar
de donde va a heredar sus características, y se
declara de la siguiente manera:
class claseDerivada : tipoDeAcceso claseBase
Ejemplo:
class perro : public animal {
…….
};
// Se genera laclase perro a partir de la clase
animal
8

HERENCIA

MODIFICADORES DE
ACCESO

9

MODIFICADORES DE ACCESO
• Para controlar la transmisión de la
accesibilidad se utiliza el tipoDeAcceso.
class claseDerivada : tipoDeAcceso claseBase

• Este especificador puede ser cualquiera
de las palabras clave ya conocidas:
private, public, protected .

10

PÚBLICO (public)
• Son accesibles desde el exterior dela
clase; pueden ser referenciados desde
cualquier sitio donde la clase sea visible y
constituyen en realidad su interfaz.
• Los atributos y métodos públicos son
accesibles por los usuarios de la clase.

11

PÚBLICO (public)
• Ejemplo:
class B : public A { ... };

miembros públicos en A resultan públicos en B.
miembros protegidos en A resultan protegidos en B.
miembros privados en A no seheredan.

12

PRIVADO (private)
• Solo son accesibles por miembros de la
propia clase; no desde el exterior.
• Suele decirse de ellos que solo son
accesibles por el programador de la clase.
• Cuando se deriva de una clase, los
miembros privados no son accesibles en
la clase derivada.
13

PRIVADO (private)
• Ejemplo:
class B : private A { ... };

miembros públicos en A resultan privados en B.
miembrosprotegidos en A resultan privados en B.
miembros privados en A no se heredan.

14

PROTEGIDO (protected)
• Tienen el mismo comportamiento que los
privados, pero difieren en cuanto a la
accesibilidad de sus descendientes.
• Los miembros de clases derivadas que
son
descendientes
de
miembros
protegidos, son accesibles por el resto de
los miembros (cosa que no ocurre con los
descendientes de miembrosprivados)
15

PROTEGIDO (protected)
• Ejemplo:
class B : protected A { ... };

miembros públicos en A resultan protegidos en B.
miembros protegidos en A resultan protegidos en B.
miembros privados en A no se heredan.

16

MODIFICADORES DE ACCESO

Miembro de
la clase base

Tipo de acceso
public

Tipo de acceso
private

Tipo de acceso
protected

Public

public

private

protected

Private

Noheredados

No heredados

No heredados

Protected

protected

private

protected

17

EJEMPLO HERENCIA
class vehiculo{
protected:
int vel;
bool on;

//clase vehiculo
vehiculo::vehiculo():vel(0),on(false){
cout<<"constructor clase base"< }
vehiculo::vehiculo(int _vel,bool _on):vel(_vel),on(_on){
cout<<"constructor con argumentos clase base"< }

public:
vehiculo();
int vehiculo::getVel()...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS