Ingenieria

Páginas: 22 (5469 palabras) Publicado: 18 de mayo de 2013
CAPÍTULO 5

PROGRAMACIÓN ORIENTADA A
OBJETOS USANDO HERENCIA

5.1 HERENCIA
5.1.1 Funcionamiento básico
La herencia es un mecanismo muy importante en la programación orientada
a objetos. Gracias a la herencia podemos crear clases que especializan a otras
previamente definidas.
Pongamos como ejemplo una clase Publicacion en la que se determinan
propiedades básicas comunes a todas laspublicaciones (libros, revistas, periódicos,
etc.). Entre estas propiedades pueden definirse el número de páginas y el precio de la
publicación:
1
2
3
4

class Publicacion {
public int NumeroDePaginas;
public float Precio;
}

Partiendo de la clase base Publicacion, podemos especializar un libro de la
siguiente manera:
1
2
3
4
5
6
7

class Libro extends Publicacion {public String Titulo;
public String TipoPortada;
public String ISBN;
public String NombreAutor;
public String Editorial;
}

© JESÚS BOBADILLA SANCHO (JBOBI@EUI.UPM.ES)

138 JAVA A TRAVÉS DE EJEMPLOS

La clase Libro extiende (y se emplea la palabra reservada extends) a la clase
Publicación. La clase Libro contiene ahora todas sus propiedades más las
propiedades de la clase Publicacion.De esta manera, un libro se define por
NumeroDePaginas, Precio , Titulo , TipoPortada, etc.
Se dice (en terminología orientada a objetos) que Libro es una clase
derivada o subclase de Publicación, mientras que Publicación es la superclase de
Libro.
Para comprobar que un libro contiene tanto las propiedades de la superclase
como las de la subclase realizamos el siguiente programa:
1class PruebaLibro {
2
public static void main(String[] args) {
3
Libro MiLibro = new Libro();
4
MiLibro.NombreAutor = "Frederick Forsyth";
5
MiLibro.Titulo = "El manifiesto negro";
6
MiLibro.Editorial = "Circulo de lectores";
7
MiLibro.TipoPortada = "Dura";
8
MiLibro.NumeroDePaginas = 575;
9
}
10 }

Podemos comprobar como la clase Libro ha heredado las propiedades de la
clasePublicacion.
Una superclase puede tener cualquier número de subclases:
1
2
3
4

class Periodico extends Publicacion {
public String Nombre;
public String Fecha;
}
Publicacion

Libro

Periodico

El mecanismo de herencia no sólo actúa sobre las propiedades, lo hace sobre
todos los miembros (métodos y propiedades) de las clases, de esta manera, las clases
anteriores se puedencompletar con métodos:

© BOBADILLA

CAPÍTULO 5: PROGRAMACIÓN ORIENTADA A OBJETOS USANDO HERENCIA 139

1 class Publicacion2 {
2
private int NumeroDePaginas;
3
private float Precio;
4
5
public int DimeNumeroDePaginas(){
6
return NumeroDePaginas;
7
}
8
9
public void PonNumeroDePaginas(int NumeroDePaginas){
10
this.NumeroDePaginas = NumeroDePaginas;
11
}
12
13
public floatDimePrecio(){
14
return Precio;
15
}
16
17
public void PonPrecio(float Precio){
18
this.Precio = Precio;
19
}
20 }
1 class Periodico2 extends Publicacion2 {
2
private String Nombre;
3
private String Fecha;
4
5
public String DimeNombre() {
6
return Nombre;
7
}
8
9
public void PonNombre(String Nombre) {
10
this.Nombre = Nombre;
11
}
12
13
public StringDimeFecha() {
14
return Fecha;
15
}
16
17
public void PonFecha(String Fecha) {
18
this.Fecha = Fecha;
19
}
20 }

En este caso la clase derivada (o subclase) Periodico2 contiene tanto las
propiedades como los métodos de la superclase Publicacion2, aunque como veremos
en el siguiente apartado no todos los miembros son directamente accesibles. La clase
PruebaPeriodico2 nos muestra comopodemos acceder a los valores de las
propiedades de Publicacion2.

© JESÚS BOBADILLA SANCHO (JBOBI@EUI.UPM.ES)

140 JAVA A TRAVÉS DE EJEMPLOS

1
2
3
4
5
6
7
8
9

class PruebaPeriodico2 {
public static void main(String[] args) {
Periodico2 MiPeriodico = new Periodico2();
MiPeriodico.PonNumeroDePaginas(65);
MiPeriodico.PonPrecio(0.9f);
MiPeriodico.PonFecha("22/02/2003");...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ingenieria
  • Ingenieria
  • Ingenieria
  • Ingeniería
  • Ingenieria
  • Ingenieria
  • La ingenieria
  • Ingenieria

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS