Herencia En Java

Páginas: 21 (5091 palabras) Publicado: 26 de diciembre de 2012
Marco Besteiro y Miguel Rodríguez

Herencia e Interfaces

Herencia e Interfaces
Herencia
Introducción
En C# cualquier dato es un objeto porque todos los tipos derivan implícitamente de este
tipo, y “heredan“ los métodos y campos definidos en dicha clase. Cada nuevo tipo tiene
todo lo que tiene el tipo object –y puede utilizarlo e incluso redefinirlo- y añade una
serie de campos ymétodos.
Cuando, por ejemplo, se está diseñando una interfaz gráfica, sería absurdo tener que
escribir todo el código para cada ventana cuando muchas de ellas son casi iguales y
realizan tareas parecidas. Lo lógico es “aprovechar” ese código que ya está escrito y
probado y cambiar y añadir lo que sea necesario para ir obteniendo nuevas ventanas
particularizadas. Piense, por ejemplo, en un cuadro dediálogo común. Resulta
coherente escribir un código bastante general que sirva para cualquier ventana y
posteriormente modificarlo –que no sea redimensionable, que tenga un título diferente,
etc-, añadiendo características –nuevos botones, etc- o cambiando algunas de ellas.
La herencia proporciona un mecanismo para definir una nueva clase, a partir de otra
que ya existe, modificándola. Lanueva clase que se define, se denomina clase derivada
y la clase de la que se “hereda” se llama clase base.
La clase derivada es la misma clase base a la que se añaden nuevos miembros (campos,
métodos, etc) y/o se redefinen alguno de ellos.
La clase base puede ser a su vez, clase derivada de otra. Cuando hay muchas clases
relacionadas entre sí por el mecanismo de la herencia, se habla dejerarquía de clases.
La herencia proporciona dos grandes ventajas al programador: por un lado, permite la
reutilización de código y por otro permite el polimorfismo de referencias.

Fundamentos de la herencia
Para indicar que una clase hereda de otra, se utiliza el siguiente formato general:
[modificador] class ClaseDerivada : ClaseBase
{
//Cuerpo de la clase
}

La clase derivada “hereda” todoslos miembros de la clase base, es decir, tiene todos y
cada uno miembros de la clase base y los que el programador desee añadir.
Ejemplo:
using System;
namespace Herencia
{
public class ClaseBase

1/21

Marco Besteiro y Miguel Rodríguez

Herencia e Interfaces

{
public int a;
public int b;
public void Imprimir_ab()
{
Console.WriteLine("a={0},b={1}",a,b);
}
}
public classClaseDerivada:ClaseBase
{
public int c;
public void Imprimir_c()
{
Console.WriteLine("c={0}",c);
}
public void ImprimirSuma()
{
Console.WriteLine("Suma={0}",a+b+c);
}
}
class HerenciaApp
{
static void Main(string[] args)
{
//Se crean objetos de las clases base y derivada
ClaseBase claseBase=new ClaseBase();
ClaseDerivada claseDerivada=new ClaseDerivada();
//La clase base puedeinvocar sus miembros desde Main
claseBase.a=11;
claseBase.b=12;
//se imprimen los campos de la clase base
claseBase.Imprimir_ab();
//La clase Derivada tiene como miembros propios
//todos los de la clase base
claseDerivada.a=25;
claseDerivada.b=26;
claseDerivada.c=27;
claseDerivada.Imprimir_ab();
//y los añadidos por el programador
claseDerivada.Imprimir_c();
claseDerivada.ImprimirSuma();}
}
}

La salida de este programa es:
a=11, b=12
a=25, b=26
c=27
Suma=78

2/21

Marco Besteiro y Miguel Rodríguez

Herencia e Interfaces

En este ejemplo se observa que la ClaseDerivada tiene como miembros todos los
miembros que ha definido como propios y todos los miembros que tiene la clase de la
que deriva.
Es decir, su miembros son:
Campos: a, b y c
Métodos:Imprimir_ab(), Imprimir_c(), ImprimirSuma()
Por eso, el objeto claseDerivada puede acceder a los campos a y b e invocar el
método Imprimir_ab()y puede llamar desde un método propio como es
ImprimirSuma()a los campos a y b directamente.
En este caso, se dice que la clase ClaseDerivada deriva de la clase ClaseBase o que la
clase ClaseBase es una superclase (clase padre) de la ClaseDerivada -(clase...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Herencia java
  • Herencia Java
  • Java- herencias
  • Ejemplo de Herencia en Java
  • Java II Herencia
  • Herencia Lenguaje Java
  • POO Herencia En Java
  • Herencia con array en Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS