Diferencias entre interfaz y clase abstracta en Java

preview_player
Показать описание
En este video vemos las diferencias entre interfaz y clase abstracta en Java
Рекомендации по теме
Комментарии
Автор

¡Muchas gracias por responder a la pregunta! Ahora si está más claro 🎉

juanj.minayat.
Автор

si tu clase es una generalización de alguna subclase, por ejemplo: Vehículo es la generalización de Auto, Colectivo, Avión. y además todos comparten atributos, algunos métodos como ir hacia adelante, detenerse, prender o apagar motor, entonces estas en un claro caso de clase abstracta. Ahora si tus subclases hacen un sonido de motor diferente, entonces cada subclase implementará la interface con el método sonido, pero cada uno con un cuerpo de método diferente.

DaviiddCc
Автор

A mi no me queda 100% claro en que casos debería usar una u otra, me parecen de cierta forma hasta intercambiables. Siento que es como si en ambas se pudiera aplicar herencia, solo que en una le llaman implementar y en otra heredar. Cual es la abstracción logica que deberia usar para entender este concepto? Siento que es lo mismo tener una interface de Vehiculo (con sus metodos sin definir de Manejar, Encender) implementada por Carro y Moto, que una clase abstracta de Vehiculo (con sus metodos abstractos de Manejar, Encender) heredada por Carro y Moto. En cada una, se hacen sus respectivos override. En donde estoy fallando para entender cual usar y en que casos?

charlies
Автор

Tambien tengo entendido que una interfaz no se pueda instancear, corriganme si me equivoco.

dembertcastillo