CONSTRUCTORES Y DESTRUCTORES

Anuncio
HERENCIA
La herencia permite que se puedan definir nuevas clases basadas en clases existentes, lo cual facilita re-utilizar
código previamente desarrollado. Si una clase deriva de otra (extends) hereda todos sus atributos y funciones. La
clase derivada puede añadir nuevos atributos y funciones.
En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólo puede derivar de una única clase, con
lo cual no es posible realizar herencia múltiple en base a clases.
Ej. En el siguiente ejemplo tenemos 3 clases, una superclase (class Empleado) y dos subclases (class
Administrativo y class Docente). Que derivan de la superclase Empleado. Las clases derivadas pueden tener otros
atributos y funciones además de las que heredan como se muestra en el siguiente ejemplo
Empleado
Administrativo
Ejemplo
// SUPERCLASE Empleado
class Empleado
{
private String nombre;
private int edad;
Empleado(String n,int e)
{
nombre=n;
edad=e;
}
void setEdad(int e)
{
Edad=e;
}
void setNombre(String n)
{
Nombre=n;
}
String getNombre()
{
`
return nombre;
}
int getEdad()
{
return edad;
}
}
superclase
Docente
subclases
// la CLASE EXTENDIDA Docente, hereda todos los atributos y funciones de la clase Empleado
class Docente extends Empleado
{
Docente(String x,int y)
{
super(x,y);
}
}
La clase Docente como hereda todo de la
clase Empleado, tiene todos los atributos y
funciones de la clase Empleado, sin
necesidad de declararlos nuevamente.
Pero, si debe declararse su constructor
Y llamar al constructor de la superclase
//la CLASE EXTENDIDA Administrativo, hereda todas los atributos y funciones de la clase Empleado, además
//se le añade un nuevo atributo que es cargo
class Administrativo extends Empleado
{
private String cargo;
Administrativo(String n,int e,String c)
{
super(n,e);
cargo=c;
}
void setCargo(String c)
{
Cargo=c;
}
String getCargo()
{
return cargo;
}
Además de heredar todas los atributos y
funciones de la clase Empleado, la clase
Administrativo tiene una nueva variable
cargo
La palabra super hace referencia a variables o
funciones de la superclase Empleado. En este caso
llama al constructor de la superclase
}
//El programa donde se crean los objetos Administrativo y Docente
class prueba
{
public static void main(String args[])
{
Docente doc=new Docente("Carlos Sanchez",32);
System.out.print(doc.getNombre());
System.out.print(doc.getEdad());
Como se ve el objetos doc y admin tienen
todas los atributos y funciones de la clase
heredada Empleado
Administrativo admi=new Administrativo("Juan Perez",20,"cajero");
System.out.print(admi.getNombre());
System.out.print(admi.getEdad());
System.out.print(admin.getCargo());
}
}
EJERCICIO PARA PRACTICAR
En una tienda se vende 2 productos, monitores e impresoras de computadoras, para ambos productos se guarda
información común como: código y precio. Las impresoras además tienen información de tipo de impresora y
los monitores el tamaño en pulgadas.
- Realice las clases Producto (superclase), Monitor e Impresora (sub clases)
(utilice constructores, herencia y todos los atributos de las clases deben ser privados)
- Realice una clase de prueba donde realice las siguientes acciones:
- Crear un objeto m1 de la clase Monitor.
- Crear un objeto m2 de la clase Monitor.
- Crear un objeto imp1 de la clase Impresora.
- Modifique el precio de m1
- Visualice el código de m2
- Modifique el tipo de imp1
Descargar