Clases Extendidas - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Clases Extendidas

Description:

Anular un m todo es sustituir la implementaci n de un m todo de la superclase, ... Los campos no se pueden anular s lo se pueden ocultar. ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 19
Provided by: fiselect2
Category:

less

Transcript and Presenter's Notes

Title: Clases Extendidas


1
Clases Extendidas
La clase extendida hereda los campos y métodos de
la clase que ha sido extendida.
La clase original se conoce como superclase.
2
Clases Extendidas
Una clase extendida se puede usar en cualquier
lugar en que se podía usar la superclase. Esto se
conoce como polimorfismo. Clases diferentes, que
se denominan polimorficas pueden implementar
métodos con el mismo nombre. Es decir objetos de
clases distintas pueden entender mensajes
iguales. Las clases extendidas, en Java, se
declaran con la claúsula extends.
3
Clases Extendidas
En Java todos los ejemplos que hemos visto hasta
ahora extienden implicitamente de la clase
Object. Object es la raíz de todas las clases.
Esta clase declara métodos que heredan todas las
clases. Las variables de clase Object pueden
referenciar cualquier objeto.
4
Ejemplo de clases extendidas
import java.io. class vehiculo protected
long idnum protected String nombre "sin
nombre" private static long sigId
0 vehiculo( ) idnum sigId protected
long getsigId() return sigId public static
void main(String args) vehiculo auto new
vehiculo() auto.nombre "Miauto" vehiculo
colectivo new vehiculo() colectivo.nombre
"Micolectivo" System.out.println("Vehiculo"
auto.nombre) System.out.println("Vehiculo"
colectivo.nombre)
5
Ejemplo de clases extendidas
class Vehiculopasajeros extends vehiculo int
asientos 50 int ocupados public
Vehiculopasajeros( int disponibles, int
ocu) super() asientos disponibles ocupa
dos ocu
6
Ejemplo de clases extendidas
public static void main(String args)
int cant 60 int ocu 0
Vehiculopasajeros Urbano new Vehiculopasajeros(c
ant,ocu) System.out.println(" sigid de Urbano
" Urbano.getsigId()) Vehiculopasajeros
Inter new Vehiculopasajeros(cant,ocu) System.
out.println(" sigid de Inter "
Inter.getsigId())
7
Ejemplo de clases extendidas
Urbano.nombre "Cinta de Plata" Inter.nombre
"Turicenter" System.out.println("Vehiculo de
pasajeros " Urbano.nombre) System.out.print
ln() System.out.println("Vehiculo de pasajeros
" Urbano.asientos)
8
Significado de protected
Un miembro protegido se puede acceder desde una
clase por medio de referencias de objeto que sean
del mismo tipo que la clase o de sus clases
extendiadas.
vehiculo
Vehiculopasajeros puede acceder a nombre, a
través de una referencia a Vehiculopasajeros o
una referencia a combi. No puede acceder a través
de una referencia a auto.
protected nombre
Vehiculopasajeros
auto
combi
9
Significado de protected
  • Si nombre fuese estático, puedo acceder a él a
    través de cualquier referencias a cualquier tipo
    vehiculo.
  • Los miembros declarados protected también son
    accesibles a todo el código de paquete.
  • El mismo tratamiento explicado con los campos,
    ocurre con los métodos.

10
Constructores en las clases extendidas
La clase extendida debe invocar uno de los
constructores de la superclase, para que la parte
del objeto que controla la superclase sea
construído en forma correcta. Para ello se puede
usar super( ) Si no se invoca en forma
explícita un constructor de la superclase, se
invoca en forma automática el constructor sin
argumentos de la superclase, por lo cual la
superclase debería tener un constructor no-arg.
11
Valores iniciales para los campos
Tipos Valores iniciales numericos 0 char
/u0000 boolean false referencias a
objetos null
12
Orden de ejecución
1. Invocar un constructor de la superclase. 2.
Inicializar los campos usando sentencias de
inicialización. 3. Ejecutar el cuerpo del
constructor.
13
Anulación de métodos y ocultamiento de campos
anulan Métodos sobrecargan
Campos ocultan
14
Anulación de métodos y ocultamiento de campos
  • Sobrecargar un método es tener más de un método
    con el mismo nombre pero con signaturas
    distintas.
  • Anular un método es sustituir la implementación
    de un método de la superclase, por una
    implementación propia para la subclase. Las
    signaturas deben ser idénticas y el tipo devuelto
    también deben ser iguales.
  • La claúsula throws del método anulador puede
    listar menos tipos de excepciones que la claúsula
    throws del método que se anuló, pero nunca más.

15
Anulación de métodos y ocultamiento de campos
  • Los métodos anulados tienen sus propios
    especificadores de acceso. Una clase extendida
    puede modificar el acceso de los métodos de la
    superclase, pero sólo si otorga más acceso.
  • Un método declarado protected puede ser
    redeclarado protected o public pero no private.

16
Anulación de métodos y ocultamiento de campos
Los campos no se pueden anular sólo se pueden
ocultar. Para ocultarlo basta con declarar un
campo del mismo nombre, que un campo que ya
existe en la superclase. Para acceder al campo de
la superclase utilice super o una referencia del
tipo de la superclase.
17
Anulación de métodos y ocultamiento de campos
  • Cuando se invoca un método sobre un objeto, el
    tipo real del objeto determina que implementación
    se usa.
  • Cuando se accede a un campo se usa el tipo
    declarado de la referencia.
  • Tengo una clase A y una clase B que extiende de
    A.
  • B segundo new B( )
  • Determina la referencia al objeto

  • Determina el tipo real del objeto

18
Anulación de métodos y ocultamiento de campos
  • La clase A,tiene un campo String x, y laclase B
    tiene también un campoString x,que oculta al
    campo de la superclase, y con un método mostrar
    que esta anulado en la clase extendida.
  • B primero new B( ) (B clase extendida)
  • A segundo primero (A superclase)
  • primero.mostrar( )
  • segundo.mostrar( ) (siempre se invoca el método
    del tipo real del objeto, en este caso el método
    implementado en B).
  • Primero.x ( se refiere al campo de B)
  • Segundo.x ( se refiere al campo de A)
Write a Comment
User Comments (0)
About PowerShow.com