clases abstractas
TRANSCRIPT
Clases AbstractasSebastián Saltos
Clases Abstractas
Una clase abstracta es aquella cuyo único propósito es ser heredada (extendida).public abstract class List {
protected int size;
public int size() {
return this.size;
}
public abstract void insertFront(Object o);
}
Clases Abstractas
Las clases abstractas no permiten crear objetos directamente.
List milista;
milista = new List(); //ERROR!
Método abstracto Un método abstracto no tiene
implementación su propósito es garantizar que cualquier
clase que herede a la clase abstracta lo implemente.
Para el ejemplo cualquier clase que heredela clase List deberá implementar un métodoinsertFront.
public class SLista extends List {
protected SNodo head;
// size es heredado
public void insertFront(Object o) {
head = new SNodo(dato,head);
size++
}
// método length es heredado
}
List l = new SLista();
Java Interfaces
Java Interfaces Una Java Interface es como una clase
abstracta, pero con las siguientes diferencias:En Java una subclase puede heredar
propiedades de solo una clase, sin embargo puede IMPLEMENTAR cuantas interfaces quiera
Una interfaz no puede implementar métodos, ni tampoco declarar campos que no sean de tipo final static.
Interfaces- Una clase puede implementar más de un interfaz en Java, pero
sólo puede extender una clase.
(Es lo más parecido que tiene Java a la herencia múltiple, que de clases normales está prohibida.)
- Podemos declarar variables del tipo de clase del interfaz, pero para inicializarlas tendremos que hacerlo de una clase que lo implemente.
Ejemplopublic interface Inserts {
public void insertEnd(Object o);
public void insertNth(Object o, int n);
}
public interface Deletes {
public void deleteFront();
public void deleteNth(int n);
public void deleteEnd();
}
Ejemplopublic class SLista extends List
implements Inserts,Deletes {
protected SNodo head;
public SLista() {
head = null; size = 0;
}
.
.
.
}