No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso Avanzado de Java SE

Curso Avanzado de Java SE

Anah铆 Salgado D铆az de la Vega

Anah铆 Salgado D铆az de la Vega

Diferencia Interfaces y Clases Abstractas

19/40
Recursos

Aportes 19

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Por en茅sima vez, no es Visualizable, es Viewable.

"En las clases abstractas se piensa m谩s en objetos, mientras que en las interfaces se piensa m谩s en acciones en com煤n para muchos objetos"

Este video lo vi en el curso de POO de Java. Pero esta bueno volver a verlo y reforzar el conocmiento.

diferencias entre clases abstractas y interfaces

las clases abstratas:

  • se declara con la palanbra reservada de abstarct
  • un m茅todo abstracto debe ser publico para as铆 despu茅s a帽adir su comportamiento al ser llamado.
    -no se pueden crear nuevas instancias

las interfaces :

  • para java 8 permite implementar conportamineto dentro de los metodos por meio del modificador default.
    en java 9 permite usar metodos de private .

Yo trato de pensarlo as铆. Las clases abstractas, como cualquier otra clase, usan la herencia para transferir sus atributos, pero las interfaces con sobre comportamiento.

Ejemplo: Puedes usar una clase abstracta Animal de la cual heredan las clases Insecto, Mamifero, Ave. Una vez hecha la herencia, te vez tentado crear en Ave el m茅todo volar(); sin embargo te das cuenta que no todas las aves vuelan (ejm: ping眉inos) y que adem谩s hay mami铆feros que s铆 vuelan.

Yo creo que comportamiento es la palabra clave. Un comportamiento similar aparece indistintamente de la relaci贸n entre dos clases.

Las clases abstractas y las interfaces coinciden en sus atributos, pero no se pueden crear instancias ni objetos, pero al heredarla se tienen que implementar todos sus metodos.

Las interfaces hacen lo mismo pero aqui no se tienen que implementar todos los metodos si no se utilizan.

驴 Cu谩ndo utilizar cada una ?
Usaremos interfaces para implementar m茅todos que se comporten entre familias. Es decir la relaci贸n que va m谩s all谩 de la herencia entre dos clases.

Usaremos clases abstractas para definir subclases, esta siempre deber谩 ser heredada para poder utilizar y sobre escribir m茅todos de la clase padre.

Abstractas: Objetos.
Interfaces: Acciones.

Otra diferencia bien significativa hasta donde tengo entendido es que las Clases abstractas tienen atributos y las interfaces no. Un ejemplo es que tengamos una clase Abstracta figura que tiene atributos como base y altura, esto lo tiene en comun figuras como circulos, triangulos. Las clases como circulo y triangulo pueden heredar de Figura. Ahora cada una de estas tiene sus atributos como area y perimetros. Estos pueden tener metodos de obtener 谩rea y perimetro, que se van a comportar de manera diferente porque no se calculan de la misma manera.

Las interfaces no tienen atributos y otra caracteristica es que las interfaces se tienen que implementar obligatoriamente en la clase que las implementa (valga la redundancia), mientras que los metodos abstractos de clases abstractas, no tienen que implementarse forzosamente.

Hola @anncode, una pregunta鈥 驴a qu茅 te refieres cuando dices 鈥淯na buena pr谩ctica es que el dise帽o de las aplicaciones siempre est茅 orientado a interfaces y no a la implementaci贸n鈥?
Gracias, Saludos y excelente curso

alta musica le pusieron al clip

buena explicaci贸n!!!

鉂わ笍

Buena sintesis!!

Excelente explicaci贸n de las interfaces y las clases abstractas

Muchas gracias por la explicaci贸n sobre las diferencias entre clases abstractas y las interfaces.

Que buena explicaci贸n!

Genial.

buena explicaci贸n 馃槂 gracias