Sesión 09 POO
Sesión 09 POO
Sesión 09 POO
Programación
Básica en Java
Sesión 9:
Introducción a
Java
Programación Orientada a Objetos (POO)
Objetivos de la sesión
Al finalizar esta sesión estarás en capacidad de:
● Una nueva clase se generará agregando atributos y/o código a una clase existente
○ Atributos
○ Métodos
Herencia - Organización jerárquica
○ B puede:
■ Redefinir métodos
Herencia - Ejemplo:
Avión
-Alas
-Cabina
+ Despegar()
+ Aterrizar()
Herencia Simple: Una clase puede Herencia Múltiple: Una clase puede
heredar de una única clase. heredar de varias clases. Cabe anotar
que en Java no se permite la herencia
múltiple.
A
B C B C
D E E
Herencia
Superclases y Subclases
○ B hereda de A
▪ A es la superclase y B la subclase
B
○ C hereda de B y A
○ B y C son subclase de A
○ B es un descendiente directo de A
C
○ C es un descendiente indirecto de A
Herencia – Superclases y Subclases
Ejemplo
La superclase Vehículo representa a todos los vehículos, como taxis,
autobuses, barcos, bicicletas, camiones, etcétera.
Taxi Autobus
Atributos
- numeroLicencia específicos - numeroCupos
+ setNumeroLicencia() Métodos + setNumeroCupos()
+ getNumeroLicencia() específicos + getNumeroCupos()
Herencia – Superclases y Subclases
Ejemplo de terminología
● Se define la clase Taxi a partir de la clase Vehículo y se tiene que:
• “Taxi" hereda las variables y métodos de "Vehiculo“.
• “Taxi" extiende de "Vehiculo“.
• “Taxi" es subclase de "Vehiculo“.
clase derivada.
clase hija.
• "Vehiculo" es superclase de “Taxi“.
clase base.
clase padre.
...
}
Modificador de acceso
Protected
La palabra clave protected es un modificador de acceso
utilizado para atributos, métodos y constructores,
haciéndolos accesibles en el mismo paquete y subclases.
import app.ejemplo3.Ejemplo3;
public class Ejemplo3_1 extends Ejemplo3
{
public static void main(String[] args)
{
System.out.println(Ejemplo3.atributo)
}
}
protected - EJEMPLO
class Persona {
protected String pnom = "Carolina";
protected String snom = "Sofia";
protected String email = "charag@uni.com";
protected int edad = 22;
}
class Car extends Herencia_Vehiculo {// subclase (hijo) El atributo de marca en Herencia_Vehículo en
private String nomModelo = "Mustang"; // atributo clase Car un modificador de acceso protected .
public static void main(String[] args) { Si estuviera configurado en private, la clase myCar no
System.out.print("\033[H\033[2J"); // limpia pantalla podría acceder a él.
// Creamos objeto myCar
Car myCar = new Car();
// Llamoal metod bocina() (de la clase Herencia_Vehiculo) en el objeto myCar
myCar.bocina();
//Muestra el valor del atributo de marca (de la clase de vehículo)
//y el valor del nombre del modelo de la clase de Herencia_Vehiculo
System.out.println("Atributo Clase Herencia_Vehiculo--> "+myCar.marca);
System.out.println("Atributo Clase Car--> "+myCar.nomModelo);
}
}
Ejemplo
La clase Alumno
contendrá solamente el
atributo curso, el
nombre y el nif son los
heredados de Persona
Clase Persona con los atributos nif y nombre.