"LA CLASE BASE"
La funcionalidad de una clase existente se puede extender al crear una nueva clase que se deriva de ella. La clase derivada hereda las propiedades de la clase base y es posible agregar o reemplazar métodos y propiedades según sea necesario.
En Java existe una clase base que es la raíz de la jerarquía y de la cual heredan todas aunque no se diga explicitamente mediante la clausula extends. Esta clase base se llama Object y contiene algunos métodos básicos. Los métodos declarados por la clase Object son los siguientes:
public final Class getClass() { . . . }
public String toString() { . . . }
public boolean equals(Object obj) { . . . }
public int hashCode() { . . . }
protected Object clone() throws CloneNotSupportedException { . . . }
public final void wait() throws IllegalMonitorStateException,
InterruptedException { . . . public final void wait(long millis) throws
IllegalMonitorStateException,
InterruptedException {. . .}
public final void wait(long millis, int nanos) throws IllegalMonitorStateException,
InterruptedException { . . . } public final void notify() throw IllegalMonitorStateException { . . . }
public final void notifyAll() throws
IllegalMonitorStateException { . . . }
protected void finalize() throws Throwable { . . . }
}
Como puede verse toString es un método de Object, que puede ser redefinido en las clases derivadas. Los métodos wait, notify y notifyAll tienen que ver con la gestión de threads de la JVM. El método finalize ya se ha comentado al hablar del recolector de basura.
*Seleccionar los constructores
Los objetos de clase base siempre se construyen antes que cualquier clase derivada. De esta forma, el constructor de la clase base se ejecuta antes que el constructor de la clase derivada. Si la clase base tiene más de un constructor, la clase derivada puede decidir a qué constructor se va a llamar.
*La clase base object
La clase Object es la clase raíz de la cual derivan todas las clases. Esta derivación es implícita. La clase Object define una serie de funciones miembro que heredan todas las clases.
*Ejemplos de clases bases:
En este ejemplo, primero definimos una clase base y una extensión de la clase. La clase base describe una verdura general, si es comestible o no y cuál es su color. La subclase Espinaca añade un método para cocinarla y otro para averiguar si es cocinada.
<?php
// clase base con propiedades y métodos miembro
class
Verdura
{
var
$comestible
;
var
$color
;
function
Verdura
(
$comestible
,
$color
=
"verde"
)
{
$this
->
comestible
=
$comestible
;
$this
->
color
=
$color
;
}
function
es_comestible
()
{
return
$this
->
comestible
;
}
function
qué_color
()
{
return
$this
->
color
;
}
}
// fin de la clase Verdura
// extender la clase base
class
Espinaca
extends
Verdura
{
var
$concinada
=
false
;
function
Espinaca
()
{
$this
->
Verdura
(
true
,
"verde"
);
}
function
cocinarla
()
{
$this
->
concinada
=
true
;
}
function
está_cocinada
()
{
return
$this
->
concinada
;
}
}
// fin de la clase Espinaca
Entonces instanciamos 2 objetos de estas clases e imprimimos la información sobre ellos, incluida su clase padre. También definimos algunas funciones de utilidad, prinpipalmente para tener una impresión agradable de las varaibles.
Herencia es el mecanismo de deducir o derivar una nueva clase de otra clase ya existente. Se dice que una clase derivada hereda la descripción de una clase base. A la clase base se le denomina superclase y a la clases derivada se le llama subclase.
Una clase puede ser derivada de una clase existente utilizando el siguiente formato en Java:
import paquetes;
/++++++++ CLASE BASE +++++++++++++
class Base
{
//Conjunto de instrucciones ;}//Funciones miembro de la subclase
public Tipo Metodo_miembro (Parametros)
{nombre= nombreEstudiante;examen= new double [NUM_EXA];calificaciones= "*****";}
public Base( Parametros){
//Definición de datos miembrosprotected tipo datomiembro_n;public tipo datomiembro_m;private tipo datomiembro_p;
}
Ejemplo de Herencia:
import java.io.*;
//*************Clase BASE ***************
class Estudiante
{
{
protected int NUM_EXA =3;
protected String nombre;
protected double[] examen;
protected String calificaciones;
public Estudiante()
{
nombre= "Sin Nombre";
}
public Estudiante(String nombreEstudiante)
{
nombre= nombreEstudiante;
examen= new double [NUM_EXA];
calificaciones= "*****";
}
public String obtenCalificaciones()
{
return calificaciones;
}
public String obtenNombre()
{
return nombre;
}
public void asignaNombre (String nuevoNombre)
{
nombre= nuevoNombre;
}
public void imprimeCalifExamen()
{
for(int i=0; i< NUM_EXA; i++)}
{
System.out.print( examen[i]+" ");
}
public double obtenCalifExamen(int numExam)
{
return examen[numExam -1];}
public void asignaCalifExamen(int numExam, double califExamen)
{
examen[numExam -1]=califExamen;}
}
CONCLUSIÓN DEL TEMA: "LA CLASE BASE"
n
La clase ya existente se le llama superclase, clase base , o clase padre.
n
En la clase derivada podemos redefinir (override, o sobremontar) métodos, lo cual corresponde a reimplementar un método de la clase base en la clase derivada.
n
Si aún deseamos acceder la método de la clase base, lo podemos hacer utilizando la palabra super como referencia al padre.
n
Notar que también usamos esta palabra reservada para invocar constructores de la clase base.
TRABAJO REALIZADO POR:
ROSAURA NUÑEZ GUZMAN
Y
ERIKA MARTINEZ JUAREZ
"PROGRAMACIÓN ORIENTADA A OBJETOS"
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->