clase09_20131_Herencia
Páginas: 13 (3162 palabras)
Publicado: 28 de enero de 2016
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.