clases abstractas

10
Clases Abstractas Sebastián Saltos

Upload: sebastian-saltos

Post on 25-Jul-2015

354 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Clases abstractas

Clases AbstractasSebastián Saltos

Page 2: Clases abstractas

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);

}

Page 3: Clases abstractas

Clases Abstractas

Las clases abstractas no permiten crear objetos directamente.

List milista;

milista = new List(); //ERROR!

Page 4: Clases abstractas

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.

Page 5: Clases abstractas

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();

Page 6: Clases abstractas

Java Interfaces

Page 7: Clases abstractas

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.

Page 8: Clases abstractas

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.

Page 9: Clases abstractas

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();

}

Page 10: Clases abstractas

Ejemplopublic class SLista extends List

implements Inserts,Deletes {

protected SNodo head;

public SLista() {

head = null; size = 0;

}

.

.

.

}