Clases Extendidas - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Clases Extendidas

Description:

Title: Clases EXtendidas Author. Last modified by: estela Created Date: 9/24/2000 1:37:18 PM Document presentation format: Presentaci n en pantalla – PowerPoint PPT presentation

Number of Views:63
Avg rating:3.0/5.0
Slides: 30
Provided by: 2498
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 de la cual extiende.
La clase original se conoce como superclase y la
clase extendida como subclase.
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 polimórficas 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 a 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 public
vehiculo( ) idnum sigId protected long
getsigId() return sigId
5
Ejemplo de clases extendidas
  • 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)

6
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
7
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())
8
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)
9
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
extendidas.
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
10
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.

11
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
construido 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.
12
Valores iniciales para los campos
Tipos Valores iniciales numericos 0 char
/u0000 boolean false referencias a
objetos null
13
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.
14
Anulación de métodos y ocultamiento de campos (I)
anulan Métodos sobrecargan
Campos ocultan
15
Anulación y sobrecarga de métodos
  • 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.

16
Anulación y sobrecarga de métodos
  • 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.

17
Anulación y sobrecarga de métodos
  • Si una subclase define un método de clase, con la
    misma signatura que un método de clase de la
    superclase, el método de la subclase oculta al de
    la superclase.
  • La diferencia entre sobrecargar y ocultar es
    importante

18
Anulación y sobrecarga de métodos
  • public class Animal
  • public static void testClassMethod()
    System.out.println("The class method in
    Animal.")
  • public void testInstanceMethod()
    System.out.println("The instance method in
    Animal.")

19
Anulación y sobrecarga de métodos
  • public class Cat extends Animal
  • public static void testClassMethod()
    System.out.println("The class method in Cat.")
  • public void testInstanceMethod()
    System.out.println("The instance method in
    Cat.")
  • public static void main(String args)
  • Cat myCat new Cat()
  • Animal myAnimal myCat
  • Animal.testClassMethod()
    myAnimal.testInstanceM
    ethod()

20
Anulación y sobrecarga de métodos
  • The class method in Animal.
  • The instance method in Cat.

La implementación del método de clase que se
invoca es el de la superclase. La implementación
del método de instancia que se invoca es el de la
subclase.
21
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. No es recomendable.
22
Anulación de métodos de instancia 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

23
Anulación de métodos y ocultamiento de campos
  • La clase A, tiene un campo String x, y la clase
    B tiene también un campo String x,que oculta al
    campo de la superclase, y con un método de
    instancia 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)

24
Object como superclase
  • public boolean equals(Object obj)
  • protected void finalize() throws Throwable
  • public String toString()
  •      

25
Object como superclase equals
  • public class Book
  • ...
  • public boolean equals(Object obj)
  • if (obj instanceof Book)
  • return ISBN.equals((Book)obj.getISBN())
  • else return false      

26
Object como superclase finalize
  • finalize para asegurar que los recursos
    utilizados quedan en un estado consistente
  • toString retorna un objeto en forma de String.
    Esto depende exclusivamente del objeto, razón por
    la cual debe sobrecargarse el método.

27
Clases y métodos finales
  • En un método indica que el mismo no puede
    anularse en las subclases.
  • En una clase indica que no pueden extenderse
    clases de ellas.

28
Métodos y clases abstractas
  • Una clase abstracta es una que se declara
    abstract
  • abstract class figura
  • .....................
  • y puede o no contener métodos abstractos.
  • Una clase abstracta no puede ser instanciada.

29
Métodos y clases abstractas
  • Un método abstracto es uno que es declarado pero
    no implementado.
  • Si una clase incluye métodos abstractos debe
    declararse como abstracta.
  • public abstract class figura
  • abstract void dibujarse (double x, double y)
  • .................
Write a Comment
User Comments (0)
About PowerShow.com