Professional Documents
Culture Documents
Orientada a Objetos
Clase 11
Interfaces, Herencia y
Clases Abstractas
Grupo 501
Universidad de Xalapa
perez.castro.nancy@gmail.com
Interface
Una interface en Java es un modelo de
una clase.La interface se caracteriza por
tener constantes y mtodos abstractos.
Una interface representa una relacin de
tipo es-un(a).
perez.castro.nancy@gmail.com
perez.castro.nancy@gmail.com
Sintaxis Interface
acceso interface NombreInterface
{
constante 1 ;
...
constante n ;
tipo 1 nombreMetodo 1 (argumentos);
...
tipo n nombreMetodo n (argumentos);
En interface todos los mtodos
}
declarados son, de manera predeterminada, pblicos y abstractos; por ello
no est permitido precederlos de
modificadores.
perez.castro.nancy@gmail.com
Uso de Interface
class NombreClase implements NombreInterfaz
{
//
definicin de atributos
//
implementacin de mtodos de la clase
//
implementacin de mtodos del interfaz
}
perez.castro.nancy@gmail.com
Ejemplo Interface
interface imprenta{
void print();
}
public class A6 implements imprenta{
public static void main(String args[]){
A6 obj = new A6();
obj.print();
}
public void print(){
System.out.println("Hello");
}
}
perez.castro.nancy@gmail.com
Uso de Interfaz
Si una clase implementa una Interface todas
sus clases derivadas heredan los mtodos
implementados en la clase base y las
constantes definidas en la interfaz.
perez.castro.nancy@gmail.com
Herencia
La herencia o relacin es-un, es la
relacin existente entre dos clases. Una
clase deriva de una clase ya existente que
se denomina clase base.
Por ejemplo, si existe una clase Figura y
se desea crear una clase Triangulo, sta
ltima puede derivarse de la primera, ya
que tendrn en comn un estado y un
comportamiento.
Triangulo es-un tipo de Figura.
perez.castro.nancy@gmail.com
Herencia
Figura
Triangulo
Clase Base
Clase Derivada
10
Ejemplo Herencia
perez.castro.nancy@gmail.com
11
Ejemplo Herencia
//Clase Persona. Clase Base
public class Persona {
private String nif;
private String nombre;
public String getNif() {
return nif;
}
public void setNif(String nif) {
this.nif = nif;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
perez.castro.nancy@gmail.com
12
Ejemplo Herencia
//Clase Alumno. Clase derivada de Persona
public class Alumno extends Persona{
private String curso;
public String getCurso() {
return curso;
}
public void setCurso(String curso)
{
this.curso = curso;
}
}
perez.castro.nancy@gmail.com
13
Ejemplo Herencia
perez.castro.nancy@gmail.com
14
Ejemplo Herencia
La clase Alumno hereda los atributos nombre y nif de la
clase Persona y aade el atributo propio curso. Por lo
tanto:
Los atributos de la clase Alumno son nif, nombre y curso.
Los mtodos de la clase Alumno son: getNif(),
setNif(String nif), getNombre(), setNombre(String
nombre), getCurso(), setCurso(String curso).
La clase Alumno aunque hereda los atributos nif y
nombre, no puede acceder a ellos de forma directa ya
que son privados a la clase Persona. Se acceden a
travs de los mtodos heredados de la clase base.
La clase Alumno puede utilizar los componentes public y
protected de la clase Persona como si fueran propios.
perez.castro.nancy@gmail.com
15
Ejemplo Herencia
// Incorporar a clase Persona
public void leer(){
Scanner sc = new
Scanner(System.in);
System.out.print("Nif: ");
nif = sc.nextLine();
System.out.print("Nombre: ");
nombre = sc.nextLine();
}
perez.castro.nancy@gmail.com
16
Ejemplo Herencia
@Override //indica que se modifica un
mtodo heredado
public void leer(){
Scanner sc = new Scanner(System.in);
super.leer(); //se llama al mtodo
leer de Persona para leer nif y nombre
System.out.print("Curso: ");
curso = sc.nextLine(); //se lee el
curso
}
perez.castro.nancy@gmail.com
17
Constructores y Herencia
Los constructores no se heredan. Cada clase
derivada tendr sus propios constructores.
La clase base es la encargada de inicializar sus
atributos.
La clase derivada se encarga de inicializar solo
los suyos.
Cuando se crea un objeto de una clase derivada
se ejecutan los constructores en este orden:
1. Primero se ejecuta el constructor de la clase
base
2. Despus se ejecuta el constructor de la clase
derivada.
perez.castro.nancy@gmail.com
18
Constructores y Herencia
perez.castro.nancy@gmail.com
19
Clase Abstracta
Una clase abstracta es una clase que NO
se puede instanciar, es decir, no se
pueden crear objetos de esa clase.
Se disean solo para que otras clases
hereden de ella.
La clase abstracta normalmente es la raz
de una jerarqua de clases y contendr el
comportamiento general que deben tener
todas las subclases. En las clases
derivadas se detalla la implementacin.
perez.castro.nancy@gmail.com
20
Clase Abstracta
(Caractersticas)
perez.castro.nancy@gmail.com
21
perez.castro.nancy@gmail.com
22
Ejemplo
perez.castro.nancy@gmail.com
23
Ejemplo
perez.castro.nancy@gmail.com
24
Ejemplo
perez.castro.nancy@gmail.com
25