¿Para qué lo hacemos?
Cuando realicemos un programa crearemos una clase padre y
luego una serie de subclases a raíz de ella. Cuando en una de las clases
deseemos que cualquiera que trabaje con ella la cree con una serie de métodos que
nosotros consideremos indispensable realizaremos una interface. Es una forma
determinada de trabajar con nuestra clase implementando como mínimo una serie
de métodos predefinidos por nosotros.
SINTAXIS:
public interface MiInterface {
//obligamos a
cualquiera que utilice nuestra interface a implementar en su clase el método 1,2
y3.
public abstract String Metodo1();
public abstract String Metodo2();
public abstract String Metodo3();
}
Ejercicio
//creamos la interface para que se implimente el método
incremento_sueldo los años de trabajo y el incremento por años.
public interface MiInterface {
public abstract double incremento_sueldo(double incremento_sueldo_por_año,double años);}
public class CLASES_ABSTRACTAS {
_______________________________________________________
public static void main(String[] args) {
OPERARIOS operario[]= new OPERARIOS[3];
//tenemos 2 tipos de
operarios unos que son médicos y otros administrativos cada uno de ellos tendrá
un tipo de incremento sueldo
operario[0]= new medicos("tra","lalala","e5558","cardio",20);
operario[1]= new administrativos("paco","perez lopez","w3334","cont",50);
operario[2]=new medicos("Pedro","perez Casa","q8888888","pediatra",60);
// com instamceof confirmamos que pertenece a la clase medicos
if (operario[0] instanceof medicos) {
System.out.println(operario[0].get_regresadatos()+ "\n");}
if (operario[1] instanceof Comparable) {
System.out.println("utiliza Comparable que si no deja de funcionar");}
//imprimimos en
ventana de inmediato el método incremento_sueldo
System.out.println(operario[0].incremento_sueldo(100, 10));
System.out.println(operario[1].incremento_sueldo(50, 15));
System.out.println(operario[2].incremento_sueldo(100, 30));
Arrays.sort(operario);
for (OPERARIOS i:operario) {
System.out.println(i.get_regresadatos()+" ");}
}
}
______________________________________________________________
//clase
abstracta // clase padre// implementamos la interfaze Comparable y nuestra
interfaze MiInterfaze
_______________________________________________________
abstract class OPERARIOS implements Comparable,MiInterface{
//CONSTRUCTOR
public OPERARIOS(String nom,String apellidos, String Dni,int numero) {
nombre=nom; this.apellidos=apellidos; this.Dni=Dni;this.numero=numero;
}
public final String nombre,apellidos, Dni;
public final int numero;
public abstract String get_regresadatos();
//utilizamos el método incremento_sueldo de nuestra interface
Miinterface
public double incremento_sueldo
(double incremento_sueldo_por_año,double años) {
double incremento=incremento_sueldo_por_año;
double años_trabajados= años;
return incremento*años_trabajados;
}
//utilizamos el método compareto de Comparable
public int compareTo(Object Bob) {
OPERARIOS op=(OPERARIOS) Bob;
if (this.numero < op.numero) {return -1;}
if (this.numero>op.numero) {return 1;}
return 0;
} }
class medicos extends OPERARIOS{
public medicos(String nom,String Apellidos,String Dni, String
departamento, int nuemro) {
super(nom,Apellidos,Dni,nuemro);
dep=departamento;
}
public final String dep;
public String get_regresadatos()
{return numero+ " "+
Dni+
" " +
nombre+" "
+apellidos+" " +
dep ;}
}
class administrativos extends OPERARIOS{
public administrativos(String nom,String Apellidos,String Dni, String
departamento, int numero)
{ super(nom,Apellidos,Dni,numero);
dep=departamento;
}
public final String dep;
public String get_regresadatos()
{return numero + " "+
Dni+
" " +
nombre+" "
+apellidos+" " +
dep ;}
}
No hay comentarios:
Publicar un comentario