Está en la página 1de 28

● 4.3 Definición de una interfaz.

Una interface es un conjunto de elementos que


posibilitan la comunicación entre dos entidades de
distinta naturaleza.

cst poo 1
● 4.3 Definición de una interfaz.

Una interface es un artificio que permite la


comunicación entre dos entes o entidades con
distinta forma de expresión

cst poo 2
4 tipos de interfaces:

Hardware (dispositivos para enlazar


puertos o computadoras)
(Maquina-Maquina)
Software(pueden ser protocolos de
comunicación entre dos aplicaciones o
componentes. Maquina - Maquina)
GUI (interfaces grafica de usuario)
(mujer- maquina)
Lenguaje natural(hombre- mujer)
cst poo 3
cst poo 4
Normas para la comunicacion
Todas las interfaces deben seguir las normas o estandares de
comunicación predefinidas.

Para las maquinas:normas y tolerancias


Para los humanos: reglas gramaticales
Para los humanos con las maquinas: protocolos.

cst poo 5
Interfaces
Todas las interfaces tienen 2 partes:
La especificacion o norma y
La implementacion o artefacto.

cst poo 6
Interfaces de software
En java contamos con dos palabras reservadas para
codificar interfaces:
● interface
● implements

cst poo 7
Interfaces de software
“inteface”: palabra reservada en java que sirve para
declarar un archivo como un estandar definido para
alcanzar un comportamiento extendido en las clases y
subclases independientemente de la jerarquia de
herencia a la que pertenezcan.

cst poo 8
Interfaces de software
“implements”: palabra reservada en java que sirve
para aceptar el compromiso de concretar los metodos
señalados en el acuerdo previo declarado por la
interface que implementan.

cst poo 9
cst poo 10
Sintaxis
<class_declaration>::=
<modifier> class <name> [extends <superclass>]
[implements] <interface> [,<interface>]* {
<declarations>*
}

cst poo 11
Interfaces de software
A concrete class implements an interface by
defining all methods declared by the interface.
Many classes can implement the same interface.
These classes do not need to share the same
class hierarchy.
Also, a class can implement more than one
interface.

cst poo 12
Interfaces de software
Una clase puede heredar de una sola
superclase en el primer nivel de
herencia, pero puede implementar una o
mas interfaces(artificio para emular la
herencia multiple).
Tambien puede haber jerarquias de
herencia de interfaces.
cst poo 13
The Flyer Example
Imagine a group of objects that all share the same
ability: They fly.
You can construct a public interface, called Flyer, that
supports three operations: takeOff, land, and fly.

cst poo 14
ejemplo
12

10

cst poo 15
Ejercicio
● Codifique la interface Flyer.java y la clase
Airplane.java que la implementa en modo texto.
public interface Flyer {
public void takeOff();
public void land();
public void fly();
}

cst poo 16
Ejercicio
public class Airplane implements Flyer {
public void takeOff() {
System.out.println(“// accelerate until lift-off”);
System.out.println(“// raise landing gear”);
}

public void land() {


System.out.println(“// lower landing gear”);
System.out.println(“decelerate and lower flaps until touch-down”);
System.out.println(“// apply breaks”);
}

public void fly() {


System.out.println(“// keep those engines running”);
}
}

cst poo 17
● Reutilización de la definición de una interfaz.

cst poo 18
● Reutilización de la definición de una interfaz.

An Airplane is a Vehicle, and it can fly.


A Bird is an Animal, and it can fly.
These examples show that a class can inherit from one class
but also implement some other interface.
This sounds like multiple inheritance. Not quite. The danger of
multiple inheritance is that a class could inherit two distinct
implementations of the same method.
This is not possible with interfaces because an interface
method declaration supplies no implementation.

cst poo 19
● Reutilización de la definición de una interfaz.

cst poo 20
The following describes the Bird class:

public class Bird extends Animal implements Flyer {


public void takeOff() {
/* take-off implementation */
}
public void land() {
/* landing implementation */
}
public void fly() { /* fly implementation */ }
public void buildNest() {
/* nest building behavior */
}
public void layEggs() {
/* egg laying behavior */
}
public void eat() {
/* override eating behavior */
}
} cst poo 21
The following describes the Bird class:

The extends clause must come before the implements clause.


The Bird class can supply its own methods (buildNest and layEggs)
as well as override the Animal class methods (eat).
Suppose that you are constructing an aircraft control software
system.
It must grant permission to land and take off for flying objects of all
types.

cst poo 22
cst poo 23
public class Airport {
public static void main(String[] args) {
Airport metropolisAirport = new Airport();
Helicopter copter = new Helicopter();
SeaPlane sPlane = new SeaPlane();
Flyer S = Superman.getSuperman();
// Superman is a Singleton

metropolisAirport.givePermissionToLand(copter);
metropolisAirport.givePermissionToLand(sPlane);
metropolisAirport.givePermissionToLand(S);
}

private void givePermissionToLand(Flyer f) {


f.land();
}
}
cst poo 24
Multiple Interface
Example
A class can implement more than one interface.
Not only can the SeaPlane fly, but it can also sail.
The SeaPlane class extends the Airplane class, so
it inherits that implementation of the Flyer
interface.
The SeaPlane class also implements the Sailer
interface.
cst poo 25
Multiple Interface Example

cst poo 26
Multiple Interface Example

cst poo 27
Apis
● Checar alguna interface seleccionada
en la documentacion.

cst poo 28

También podría gustarte