Clases contra InterfacesClasesLas clases son plantillas de objetos. Definen el tipo de objetos, que datos que contendrá yl...
HerenciaNo tenemos que escribir una clase desde el principio. Si ya existe una clase que tienecaracterísticas similares a ...
InterfacesLos interfaces declaran métodos, y posiblemente campos estáticos, pero no definenmétodos. En su lugar, los inter...
En el interface Animal, los métodos están declarados, pero no definidos. Observa que esosmétodos (en azul) están definidos...
Próxima SlideShare
Cargando en…5
×

Explicacion de interface

1.852 visualizaciones

Publicado el

Publicado en: Entretenimiento y humor
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.852
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
11
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Explicacion de interface

  1. 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. 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. 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. 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.

×