Herencia - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

Herencia

Description:

Caracter sticas: Campos y m todos (incluyendo constructores) Clase Padre superclase ... Declarar nuevos campos. Declarar nuevos m todos ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 15
Provided by: homeGa
Category:

less

Transcript and Presenter's Notes

Title: Herencia


1
Herencia
Ing. Andrea Quan
2
Herencia
  • Clases heredan características de otras clases
  • Características Campos y métodos (incluyendo
    constructores)
  • Clase Padre ? superclase
  • Clase Hijo ? subclase

3
Ejemplo clase TailLista
  • Recordemos la clase SLista. Queremos
  • mejorar esta clase agregando un puntero
  • que apunte al último nodo (tail). Para esto
  • utilizaremos herencia y crearemos una
  • nueva clase que TailLista que herede las
  • propiedades de la SLista, pero que aumente
  • este puntero.

4
Ejemplo Clase TailLista
  • public class TailLista extends SLista
  • / los campos head y size son
  • heredados /
  • SNodo tail
  • La clase TailLista es subclase de SLista
  • La clase SLista es superclase de TailLista

5
Herencia
  • Una subclase puede modificar o aumentar una
    superclase en por lo menos tres formas
  • Declarar nuevos campos
  • Declarar nuevos métodos
  • Sobrescribir métodos viejos con nuevas
    implementaciones.

6
Ejemplo Clase TailLista
  • Podemos sobrescribir el método insertEnd,
  • ya que ahora tenemos una referencia al
  • último nodo
  • public void insertEnd (Object dato)
  • SNodo nuevo new SNodo(dato)
  • tail.next nuevo
  • tail tail.next
  • size

7
Constructores
  • public TailLista(Object dato)
  • size 0 / Instrucciones del
  • head null constructor de SLista /
  • tail null
  • public TailLista(Object dato)
  • super()
  • tail null
  • La llamada a super debe ser la primera en el
    constructor

8
Métodos
public void insertFront(Object dato)
super.insertFront(dato) if (size 1)
tail head
9
Protected
  • protected es un nivel de protección entre public
    y private
  • Un campo o método protected es visto por la clase
    y por todas sus subclase, pero no para otras
    clase
  • Un campo private no es visible para las subclases

10
Protected
  • public class SLista
  • private SNodo head
  • private int size
  • declaración de métodos
  • public class SLista
  • protected SNodo head
  • protected int size
  • declaración de métodos

11
Dynamic Method Lookup
  • SLista s new TailLista() //BIEN!
  • TailLista t new SLista() //ERROR!
  • Una variable tiene dos tipos de dato
  • Tipo estático (static type) Tipo con el que la
    variable se declaro.
  • Tipo dinámico (dynamic type) Tipo del objeto al
    que hace referencia la variable.

12
Dynamic Method Lookup
SLista s new TailLista() s.insertEnd(dato)
// método de TailLista SLista s new
SLista() s.insertEnd(dato) // método de SLista
13
Herencia
  • Los métodos propios de una subclase no pueden ser
    llamados desde una variable de tipo superclase

TailLista t new TailLista() t.metodoTailLista()
//BIEN!! SLista s new TailLista() s.metodoTa
ilLista() //ERROR!!
14
Herencia
  • Aquí se aplica el uso de CASTING

SLista s TailLista t new TailLista() s
t //BIEN! t s //ERROR! t
(TailLista)s //BIEN! s new SLista() t
(TailLista)s //ClassCastException if (s
instanceOf TailLista) t (TailLista)s //BIEN
Write a Comment
User Comments (0)
About PowerShow.com