Your SlideShare is downloading. ×
Explicacion de interface
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Explicacion de interface

1,315
views

Published on

Published in: Entertainment & Humor

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,315
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Clases contra InterfacesClasesLas clases son plantillas de objetos. Definen el tipo de objetos, que datos que contendrá ylos métodos para operar con esos datos. Un ejemplar de esa clase es la plantilla rellena conlos datos y las llamadas a los métodos-- el ejemplar (copia) es el objeto.Podemos crear muchos ejemplares de la misma clase, creando muchos objetos de ese tipo.Cada objeto tiene sus propios datos, y algunos objetos comparten datos específicos,dependiendo de si han sido declarados datos static o instancias. Esto lo explique con elejemplo de valor y referencia para determinar la dimensión de una matriz.Creación de varios ejemplares de clase, por medio de instancia. Donde los parámetros seutilizan por valor.En este caso se elabora clase abtrascta con datos static, donde se siempre se solicitan losdatos de la dimensión matriz y se almacenan en una referencia de memoria, no es necesarioinstanciar.
  • 2. HerenciaNo tenemos que escribir una clase desde el principio. Si ya existe una clase que tienecaracterísticas similares a la que queremos crear, podemos usar la palabra clave extendspara heredar campos y métodos desde otra clase. Luego añadimos mas campos y métodospara crear una clase más rica que la clase padre. Pero no tenemos que conformarnos con loscampos o métodos heredados. Podemos sobreescribir métodos(Polimorfismo), u ocultardatos de las clases padre(Encapsulamineto) para cumplir con nuestras necesidades.Cada vez que se tiene una clase que hereda un método de una superclase, se tiene laoportunidad de sobreescribir el método (a menos que dicho método esté marcado comofinal). El beneficio clave al sobreescribir un método heredado es la habilidad de definir uncomportamiento específico para los objetos de la subclase. Veamos un ejemplo de lasobreescritura de un método heredado:public class Animal{ public void comer () { System.out.println("Animal comiendo..."); }}class Caballo extends Animal{ public void comer() { System.out.println("Caballo comiendo..."); }}Al momento de que Caballo hereda de la clase Animal obtiene el método comer() definidoen Animal, sin embargo, se desea especificar un poco más el comportamiento de Caballoal momento de llamar a comer(), por lo tanto se define un método con el mismo nombredentro de la clase Caballo. Debido a que ambos métodos tienen el mismo nombre, parasaber qué método se invocará en tiempo de ejecución es necesario saber a qué objeto se estárefiriendo. P. ej.:public static void main(String... args){ Animal a = new Animal(); Caballo c = new Caballo(); a.comer(); c.comer();}Esto es cierto para clases concretas, pero no para los interfaces.
  • 3. InterfacesLos interfaces declaran métodos, y posiblemente campos estáticos, pero no definenmétodos. En su lugar, los interfaces sólo declaran los métodos sin ninguna instruccióndentro de ellos. En otras palabras, los interfaces son como plantillas que siempre seránplantillas. No podemos ejemplarizar un interface para crear un objeto. Son como clases sinimplementación. ¿Entonces por qué existen?Sirven para un propósito: para forzar al desarrollador a proporcionar esos métodos, condetalles, en la clase que implements el interface. En otras palabras, implementar uninterface significa que estamos haciendo la promesa de usar ciertos métodos, pero nosotros,los desarrolladores, definimos los detalles de esos métodos.¿Por qué es esto útil o necesario?Supongamos que tenemos un equipo de desarrolladores que están creando clases para hacerdiferentes tipos de objetos animales. Todos esos animales van a tener dos cosas en común: Usan alguna foma de locomoción. Comen alguna clase de comida.La diferencia entre los animales está en cómo se mueven y qué y cómo comen. En otraspalabras, cada uno necesita tener los métodos locomotion() y eat() , pero cada individuo,cada clase animal, define los detalles de esos métodos separadametne basándose en lasnecesidades de las especies de animales.Diseñamos un interface para asegurarnos de que cada objeto animal hace ciertas cosas, ynuestro equipo desarrolla clases como ésta:
  • 4. En el interface Animal, los métodos están declarados, pero no definidos. Observa que esosmétodos (en azul) están definidos en clases concretas Shark y Dog . En el ejemplo dearriba, cada método imprime una línea de texto, indicando lo que come el animal y como semueve desde un lugar a otro. La última clase es una aplicación que inicializa las dos clasesconcretas Shark y Dog , y llama a los métodos de esas clases, usando el operador punto.Cuando compilamos y ejecutamos AnimalTest , obtenemos el siguiente resultado:I swim. I hunt for seals. I run on four legs. I eat kibble.Los juegos son otro ejemplo de cómo podríamos implementar interfaces. Por ejemplo,podríamos diseñar los siguientes juegos: Water Pistol Wars, Asteroid Archery, RubberbandRally, y Cannon Craze. Todos implican armas de fuego, pero las armas y lo que disparanson diferentes. Un interface se podría asegurar de que todo juego implemente un métodofire() , pero es cosa de cada diseñador del juego la forma de disparar y el tipo de municiónutilizada.

×