0% encontró este documento útil (0 votos)
110 vistas10 páginas

Herencia en POO: Clases y Ejemplos

El documento explica los conceptos fundamentales de herencia en programación orientada a objetos. La herencia permite que una clase derivada herede atributos y métodos de una clase base. Se define una clase base como la clase original de la cual otras clases pueden heredar, y una clase derivada como aquella que hereda de una clase base. La herencia crea una jerarquía donde las clases derivadas pueden tener sus propias clases derivadas.

Cargado por

Italo Miranda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
110 vistas10 páginas

Herencia en POO: Clases y Ejemplos

El documento explica los conceptos fundamentales de herencia en programación orientada a objetos. La herencia permite que una clase derivada herede atributos y métodos de una clase base. Se define una clase base como la clase original de la cual otras clases pueden heredar, y una clase derivada como aquella que hereda de una clase base. La herencia crea una jerarquía donde las clases derivadas pueden tener sus propias clases derivadas.

Cargado por

Italo Miranda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

HERENCIA Y CLASES DERIVADAS

Fundamento teórico de Herencia:

Herencia: es un concepto fundamental en la programación orientada a objetos (POO). Se basa en


la idea de que una nueva clase puede heredar atributos y comportamientos de una clase
existente, lo que permite la reutilización de código y la creación de una estructura jerárquica en la
programación.

Clase Base: Una clase base(también llamada clase padreo superclase) es la clase original de la cual
otras clases pueden heredar propiedades y métodos. Contiene las características comunes que se
compartirán con las clases derivadas.

Clase Derivada: Una clase derivada(también llamada **clase hija** o **subclase**) es una clase
que hereda atributos y métodos de una clase base. Además de heredar, una clase derivada puede
agregar sus propios atributos y métodos o modificar los que ha heredado.

Jerarquía de Herencia:La jerarquía de herencia es una estructura organizada de clases donde las
clases derivadas se relacionan con una o más clases base. Esto crea una jerarquía o árbol de
herencia, donde las clases derivadas pueden tener sus propias clases derivadas, creando así
niveles de herencia.

PROBLEMA DE CLASE

#include <bits/stdc++.h>

using namespace std;

class vertebrados

protected:

int edad, peso;

public :

vertebrados (int e=0, int p=0){

edad=e; peso=p;}

int getEdad(){ return edad;}


void setEdad(int e){ edad=e;} no

int getPeso(){ return peso;}

void setPeso(int p){ peso=p;}

void muestre (){

cout<<"vertebrados de sangre caliente"<<endl;

};

class Terrestres:public vertebrados

private:

string nombre;

public:

Terrestres(int e , int p , string n=""):vertebrados(peso,edad){

edad =e ;

peso=p;

nombre=n;}

void correr(){

cout<<"los terrestres corren ...";}

string getNombre(){return nombre;}

void setNombre(string n){nombre=n;}

};

class acuatico:public vertebrados

public:
acuatico(int e, int p):vertebrados(edad , peso){

edad=e;

peso=p;}

void nadar(){

cout << "los acuaticos nadan";}

};

class aves:public vertebrados

public:

aves(int e, int p):vertebrados(edad , peso){

edad=e;

peso=p;}

void volar(){

cout << "No todas las aves vuelan ";}

};

int main()

vertebrados gato(2,5);

cout<<"edad del gato es:"<<[Link]()<<endl;

cout<<"el peso del gato es:"<<[Link]()<<endl;

[Link]();

Terrestres perro(4,12,"boby");

[Link](15);

cout<<"edad del perro es:"<<[Link]()<<endl;

cout<<"el peso del perro es:"<<[Link]()<<endl;

cout<<"nombre del perro es"<<[Link]()<<endl;

acuatico trucha(3,6);

cout<<"la edad de la trucha es:"<<[Link]()<<endl;

cout<<" el peso de la trucha es:"<<[Link]()<<endl;


aves pajarito (3,6);

cout<<"la edad del pajarito es:"<<[Link]()<<endl;

cout<<" el peso del pajarito es:"<<[Link]()<<endl;

return 0;

PROBLEMAS PROPUESTOS

- En el ejemplo 1 agregar la clase aves, agregando el atribulo altura_vuelo, función


velocidad_tierra() muestre “Caminan muy lento”. Mostrar un objeto de cada clase.

#include <bits/stdc++.h>

using namespace std;

class vertebrados

protected:

int edad, peso;

public :

vertebrados (int e=0, int p=0){

edad=e; peso=p;}

int getEdad(){ return edad;}

void setEdad(int e){ edad=e;} no

int getPeso(){ return peso;}

void setPeso(int p){ peso=p;}

void muestre (){

cout<<"vertebrados de sangre caliente"<<endl;

};
class Terrestres:public vertebrados

private:

string nombre;

public:

Terrestres(int e , int p , string n=""):vertebrados(peso,edad){

edad =e ;

peso=p;

nombre=n;}

void correr(){

cout<<"los terrestres corren ...";}

string getNombre(){return nombre;}

void setNombre(string n){nombre=n;}

};

class acuatico:public vertebrados

public:

acuatico(int e, int p):vertebrados(edad , peso){

edad=e;

peso=p;}

void nadar(){

cout << "los acuaticos nadan";}

};

class aves:public vertebrados

public:

aves(int e, int p):vertebrados(edad , peso){


edad=e;

peso=p;}

void volar(){

cout << "No todas las aves vuelan ";}

};

Class aves : public vertebrados

Private:

Int altura_vuelo;

Public:

Aves(int e, int p, int altura) : vertebrados(e, p), altura_vuelo(altura) {}

Int getAlturaVuelo() { return altura_vuelo; }

Void setAlturaVuelo(int altura) { altura_vuelo = altura; }

Void velocidad_tierra()

Cout << “Caminan muy lento” << endl;

Void volar()

Cout << “Algunas aves vuelan” << endl;

};
Int main()

Aves aguila(5, 10, 100);

[Link](150);

Cout << “Edad del águila: “ << [Link]() << endl;

Cout << “Peso del águila: “ << [Link]() << endl;

Cout << “Altura de vuelo del águila: “ << [Link]() << “ metros” << endl;

[Link]();

Aguila.velocidad_tierra();

[Link]();

vertebrados gato(2,5);

cout<<"edad del gato es:"<<[Link]()<<endl;

cout<<"el peso del gato es:"<<[Link]()<<endl;

[Link]();

Terrestres perro(4,12,"boby");

[Link](15);

cout<<"edad del perro es:"<<[Link]()<<endl;

cout<<"el peso del perro es:"<<[Link]()<<endl;

cout<<"nombre del perro es"<<[Link]()<<endl;

acuatico trucha(3,6);

cout<<"la edad de la trucha es:"<<[Link]()<<endl;

cout<<" el peso de la trucha es:"<<[Link]()<<endl;

aves pajarito (3,6);

cout<<"la edad del pajarito es:"<<[Link]()<<endl;


cout<<" el peso del pajarito es:"<<[Link]()<<endl;

return 0;

- Una editorial de libros y discos desea crear fichas que almacenen el título y el precio (de
tipo float) de cada publicación. Crear la correspondiente clase denominada publicacion
que implemente los datos anteriores. A partir de esta clase, diseñar dos clases derivadas:
libro: con el número de páginas (tipo int), año de publicación (tipo int) y precio (tipo
float):
y disco, con duración en minutos (tipo float) y precio (tipo int). Cada una de las clases
tendrá una función leer() y otra función mostrar(), para visualizar sus datos. Escribir un
programa que cree instancias de libro y disco. Solicite datos del usuario y a continuación
los visualice.

#include <iostream>
#include <string>

using namespace std;

class publicacion {
protected:
string titulo;
float precio;

public:
publicacion() : titulo(""), precio(0.0) {}

void leer() {
cout << "Ingrese el título: ";
[Link]();
getline(cin, titulo);

cout << "Ingrese el precio: ";


cin >> precio;
}

void mostrar() {
cout << "Título: " << titulo << endl;
cout << "Precio: $" << precio << endl;
}
};
class libro : public publicacion {
private:
int numPaginas;
int anioPublicacion;

public:
libro() : numPaginas(0), anioPublicacion(0) {}

void leer() {
publicacion::leer(); // Llamamos a la función leer de la clase base

cout << "Ingrese el número de páginas: ";


cin >> numPaginas;

cout << "Ingrese el año de publicación: ";


cin >> anioPublicacion;
}

void mostrar() {
publicacion::mostrar(); // Llamamos a la función mostrar de la clase base

cout << "Número de páginas: " << numPaginas << endl;


cout << "Año de publicación: " << anioPublicacion << endl;
}
};

class disco : public publicacion {


private:
float duracionMinutos;

public:
disco() : duracionMinutos(0.0) {}

void leer() {
publicacion::leer(); // Llamamos a la función leer de la clase base

cout << "Ingrese la duración en minutos: ";


cin >> duracionMinutos;
}

void mostrar() {
publicacion::mostrar(); // Llamamos a la función mostrar de la clase base

cout << "Duración en minutos: " << duracionMinutos << endl;


}
};

int main() {
libro libro1;
disco disco1;

cout << "Ingrese los datos del libro:" << endl;


[Link]();

cout << "\nIngrese los datos del disco:" << endl;


[Link]();

cout << "\nDatos del libro:" << endl;


[Link]();

cout << "\nDatos del disco:" << endl;


[Link]();

return 0;
}

También podría gustarte