Documente Academic
Documente Profesional
Documente Cultură
Java
HERENCIA
Ejemplos
1
JAVA
2
JAVA
HERENCIA
Objetivos: Conoce, Analiza, Crea y resuelve programas utilizando
herencia.
Superclase
PERSONA
PROFESOR Subclase
package personaprofesor;
Constructor(Es el que se
ejecuta primero en todo el
//Constructor programa), le pasamos los
atributos nombre, apellidos y
public Persona(String nombre, String apellidos, int edad) { edad con su respectivo
parámetro
this.nombre = nombre;
Le decimo al programa que las variables que
this.apellidos = apellidos; creamos en la clase Persona son iguales(asignar) a
las de su Constructor con la palabra reservada THIS
3
JAVA
this.edad = edad;
//Métodos
Creamos el método getNombre para que nos devuelva
el valor de la variable nombre(se crea este método
public String getNombre() { porque la variable esta con modificador de acceso
Private)
return nombre;
public int getEdad() { Creamos el método getEdad para que nos devuelva el
valor de la variable edad (se crea este método porque la
return edad; variable esta con modificador de acceso Private)
} //Cierre de la clase
package personaprofesor;
public class Profesor extends Persona { La clase profesor Hereda los métodos y atributos de la
Clase Persona (ClasePadre) con la ayuda de la palabra
//Campos específicos de la subclase. extends
//Constructor
Constructor de la subclase:
de la subclase: incluimos
incluimos como parámetros
como parámetros al los
al menos menos los del constructor
del constructor de la superclase
de la superclase
this.IdProfesor = IdProfesor;
Con la palabra reservada THIS para referirnos a elementos
del mismo objeto
}
public String getIdProfesor() { Se crea el metodo get para poder que nos devuelva las
variables de ambito private como es el caso de IdProfesor
return IdProfesor;
}
Creamos el metodo
mostrarNombreApellidosYCarnet para
que nos devuelva las variables de ámbito
public void mostrarNombreApellidosYCarnet() { private
+ " con Id de profesor: " + getIdProfesor() + " con edad: " + getEdad());
} //Cierre de la clase
profesor1.setIdProfesor("Prof 22-387-11");
// Con la ayuda del método set podemos asignarle un valor a la variable 5
private IdProfesor
JAVA
Superclase
PERSONA
ESTUDIANTE Subclase
//constructor
public Estudiante(String nombre,String apellido,int edad,int codigoEstudiante,float notaFinal){
//Indica los atributos heredados Con la pabara super accedemos a los atributos y
super(nombre,apellido,edad); metodos de las clases Padre
//Inicializa lo s atributos de esta clase
this.codigoEstudiante=codigoEstudiante; Le decimo al programa que las variables que creamos en la
this.notaFinal=notaFinal; clase son iguales a las de su Constructor con la palabra
} reservada THIS
public void mostrarDatos(){
System.out.println("Nombre: "+getNombre()); Creamos el metodo
System.out.println("Apellido: "+getApellido()); mostrarDatos para que nos
System.out.println("Edad: "+getEdad()); devuelva las variables de
System.out.println("Codigo de estudiante: "+codigoEstudiante); ámbito private
System.out.println("Nota final: "+notaFinal);
}
}
Ejemplo 03: Programa que crea la clase figuras y hereda a circulo, triangulo,cuadrado y
rectángulo.
7
JAVA
return aarea;
return pperimetro;
System.out.println("Nombre: "+this.getNombre());
Creamos el método dibujar solo para
mostrar los atributos getNombre,
getPerimetro y getArea
System.out.println("Perimetro: "+this.getPperimetro());
System.out.println("Area: "+this.getAarea());
8
JAVA
super("Circulo");
Con la pabara super accedemos a los atributos y metodos
radio = r; de las clase Padre y le asignamos valor al atributo propio
this.aarea= (Math.pow(radio,2)*Math.PI);
@Override
Vamos a sobrescribir el método
public void dibujar(){
dibujar dela clasePadre(figuras).
Y llamamos al metodo dibujar de la
super.dibujar();
clasebase mediante la palabra super
para acceder a los metodos y
atributos.
}
9
JAVA
t_base = a;
t_lado3 =d;
this.pperimetro = (t_base+t_lado2+t_lado3);
}
Vamos a sobrescribir el método dibujar de la
@Override clasePadre(figuras).
Y llamamos al metodo dibujar de la clasebase
public void dibujar(){ mediante la palabra super para acceder a los
metodos y atributos.
super.dibujar();
import java.util.Scanner;
La clase cuadrado hereda los métodos y atributos de
public class cuadrado extends
la Clasefiguras{
figuras (ClasePadre) con la ayuda de la
palabra
10
JAVA
this.aarea=cuadrado_lado*cuadrado_lado;
this.pperimetro=cuadrado_lado*4;
Creamos los metodos setArea y
setPerimetro para darle valor a
perímetro y area.
}
@Override
for(int j=0;j<cuadrado_lado;j++)
System.out.print(" * ");
System.out.println();
}
11
JAVA
this.pperimetro = (base+alturah)*2;
@Override
System.out.print(" * ");
System.out.println();
12
JAVA
import java.util.Scanner;
double radw;
do {
System.out.println("A. Cuadrado");
Parte lógica donde
donde escribir la parte
System.out.println("B. Rectangulo");
estética del programa y
poder seleccionar una
System.out.println("C. Circulo");
opción mediante la
variable local opc
System.out.println("D. Triangulo");
System.out.println(" ");
opc = sc.next().charAt(0);
while (opc != 'A' && opc != 'B' && opc != 'C' && opc !=
'D' && opc != 'E'
&& opc != 'a' && opc != 'b' && opc != 'c' && opc !=
'd' && opc != 'e') {
System.out.print("Opcion no encontrada,Reingrese:
");
opc = sc.next().charAt(0);
Errores para que el usuario al ingresar algún
dato fuera del programa le selección como
} error y le pida denuevo seleccionar e ingresar
valores
if (opc == 'A' || opc == 'a') {
System.out.println(" ");
Al elegir la opción
System.out.println("Ingrese lado delleCUADRADO:
A.cuadrado pida los ");
datos
wlado = sc.nextDouble();
if (wlado <= 0) {
} else {
objcuad.setarea();
Creamos objeto a partir de la clase cuadrado y
le enviamos al constructor. Y mediante el
objcuad.setperimetro();
objeto llamamos a los metodos setArea,
setPerimetro y dibujar.
objcuad.dibujar();
Al elegir la opción 14
B.rectangulo le pida los
datos
JAVA
System.out.println(" ");
basew = sc.nextDouble();
altw = sc.nextDouble();
} else {
objrec.setarea();
Creamos objeto a partir de la clase rectangulo
y le enviamos al constructor. Y mediante el
objrec.setperimetro();
objeto llamamos a los metodos setArea,
setPerimetro y dibujar.
objrec.dibujar();
radw = sc.nextDouble();
if (radw <= 0) {
} else {
15
JAVA
objcir.setarea();
Creamos objeto a partir de la clase
circulo y le enviamos al constructor. Y
objcir.setperimetro();
mediante el objeto llamamos a los
metodos setArea, setPerimetro y
dibujar.
objcir.dibujar();
tbas = sc.nextDouble();
talt = sc.nextDouble();
tl2 = sc.nextDouble();
tl3 = sc.nextDouble();
} else {
objtri.setarea();
Creamos objeto a partir de la clase
triangulo y le enviamos al
objtri.setperimetro();
constructor. Y mediante el objeto
llamamos a los metodos setArea,
objtri.dibujar(); setPerimetro y
16
JAVA
repe = sc.nextInt();
Parte lógica donde se
indica si deseas
continuar el programa o
ya finalizar.
while (repe < 1 | repe > 2) {
repe = sc.nextInt();
Ejemplo 04: Programa que crea la clase Empleado por comisión y hereda a Empleado Base
mas comisión
17
JAVA
{
Variables de ambito protected
protected String primerNombre;
porque sólo pueden ser
accedidas desde dentro de la
protected String apellidoPaterno;
mismo paquete
primerNombre = nombre;
Asignamos valor a los atributos
propios
apellidoPaterno = apellido;
numeroSeguroSocial = nss;
return primerNombre;
apellidoPaterno = apellido;
return apellidoPaterno;
return numeroSeguroSocial;
19
JAVA
{
Creamos metodos
ventasBrutas = ( ventas < 0.0 ) ? 0.0 : ventas;
establecerVentasBrutas y
obtenerVentasBrutas para que
} // fin del método establecerVentasBrutas
nos devuelva el valor de la
variable VentasBrutas.
// devuelve el monto de ventas totales del empleado por
comisión
return ventasBrutas;
{
Creamos métodos
establecerTarifaComision y
tarifaComision = ( tarifa > 0.0 && tarifaobtenerTarifaComision
< 1.0 ) ? tarifa para: 0.0;
que nos devuelva el valor de la
} // fin del método establecerTarifaComision
variable TarifaComision.
return tarifaComision;
@Override
Creamos el metodo string para que
public String toString()
nos devuelva la representación.
21
JAVA
return salarioBase;
package pruebaempleadoporcomision;
} // fin de main
24