Documentos de Académico
Documentos de Profesional
Documentos de Cultura
orientada a objetos
LICENCIATURA EN SISTEMAS
FCAD - UNER
Unidad 5
Herencia y Polimorfismo.
Herencia.
Fundamentos de la herencia.
Superclases: acceso a miembros.
Referencia a la superclase: super.
super.
Creación de una jerarquía multinivel.
Sobrescritura de métodos.
Selección de métodos en forma dinámica.
Utilización de final con la herencia.
Control de acceso.
Clases abstractas.
La clase Object
Object..
Uso de instanceof.
instanceof.
Interfaces.
Definición de interfaces.
Implementación de una interfaz.
Implementación parcial.
Utilización de las interfaces.
Herencia en interfaces.
public class A3 {
void llamarme() {
System.out.println("Método llamarme dentro de A3");
}
}
Control de Acceso
Private
El nivel de acceso más restringido es private.
Un miembro privado es accesible sólo para la clase en la que está definido. Se utiliza este acceso para
declarar miembros que sólo deben ser utilizados por la clase. Esto incluye las variables que contienen
información que si se accede a ella desde el exterior podría colocar al objeto en un estado de
inconsistencia, o los métodos que llamados desde el exterior pueden poner en peligro el estado del
objeto o del programa donde se está ejecutando.
Los miembros privados son como secretos, nunca deben contársele a nadie.
Protected
Protected permite a la propia clase, las subclases, y todas las clases dentro del mismo paquete que
accedan a los miembros. Este nivel de acceso se utiliza cuando es apropiado para una subclase de la clase
tener acceso a los miembros, pero no las clases no relacionadas.
Los miembros protegidos son como secretos familiares - no importa que toda la familia lo sepa, incluso
algunos amigos allegados pero no se quiere que los extraños lo sepan.
Public
El especificador de acceso más sencillo es public. Todas las clases, en todos los paquetes tienen acceso a
los miembros públicos de la clase. Los miembros públicos se declaran sólo si su acceso no produce
resultados indeseados si un extraño los utiliza.
package Griego;
class Alpha {
public int soyPublico;
public void metodoPublico() {
System.out.println("metodoPublico");
}
}
package Romano;
import Griego.*;
class Beta {
void metodoAccesor() {
Alpha a = new Alpha();
a.soyPublico = 10; // legal
a.metodoPublico(); // legal
}
}
Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2015
Unidad 5 Herencia.
Acceso de Paquete
Se obtiene si no se especifica ningún otro nivel de acceso a los miembros.
Este nivel de acceso permite que las clases del mismo paquete que la clase tengan acceso a los miembros.
Este nivel de acceso asume que las clases del mismo paquete son amigas de confianza.
Este nivel de confianza es como la que extiende a sus mejores amigos y que incluso no la tiene con su
familia.
package Griego;
class Alpha {
int estoyEmpaquetado;
void metodoEmpaquetado() {
System.out.println("metodoEmpaquetado");
}
}
package Griego;
class Beta {
void metodoAccesor() {
Alpha a = new Alpha();
a.estoyEmpaquetado = 10; // legal
a.metodoEmpaquetado(); // legal
}
}
- Un método por defecto puede ser sobreescrito por un método por defecto,
protegido o público.
Animal
Gato
Clases Abstractas
Una clase abstract puede tener métodos declarados como abstract abstract,, en
cuyo caso no se da definición del método.
método. Si una clase tiene algún método
abstract es obligatorio que la clase sea abstract
abstract.. En cualquier sub
sub--clase
este método deberá bien ser redefinido, bien volver a declararse como
abstract (el método y la sub
sub--clase
clase)).
Tips
Un método abstracto no puede estar contenido en una clase no abstracta.
Una clase que contiene métodos abstractos debe ser abstracta. Sin embargo,
es posible declarar una clase abstracta que no tiene métodos abstractos.
Una subclase puede ser abstracta, aún cuando su super clase es concreta. Por
ejemplo, la clase Object es concreta, pero sus subclases pueden no serlo.
Tips
Una subclase puede sobreescribir un método de su superclase para
declararlo como abstracto (inusual).
Object
Una subclase puede sobreescribir un método de su superclase para
declararlo como abstracto (inusual).
Object
instanceof
Conocer la clase de la instancia
Bibliografía complementaria