interface o clase abstracta
Estoy empezando con el java, y tengo una duda:
Existe alguna regla para saber cuando utilizar una clase abstracta y cuando una interface ??
Existe alguna regla para saber cuando utilizar una clase abstracta y cuando una interface ??
Una interfaz es una clase abstracta con todos sus métodos abstractos. Generalmente lo que se suele hacer es definir la interfaz con todos los métodos comunes, definir una clase abstracta que implementa la interfaz -esta clase será abstracta porque no implementará todos los métodos de la interfaz o porque definirá sus propios métodos abstractos- y finalmente definir una clase subclase de la clase abstracta que implemente los métodos abstractos definidos.
No se si existe tal regla...en varios libros sobre diseño siempre recomiendan "programar contra interfaces, no contra clases concretas"...las interfaces te definen comportamiento y las clases abstractas implementan parcialmente comportamiento común entre varias subclases...incluso que uses clases abstractas no te impide usar interfaces---de hecho es saludable...
en definitiva, pienso que deberíamos usar interfaces y en casos donde se justifique abstraer comportamiento común de varias clases que implementen esta interface en una clase abstracta...no se si queda más claro...je....
en definitiva, pienso que deberíamos usar interfaces y en casos donde se justifique abstraer comportamiento común de varias clases que implementen esta interface en una clase abstracta...no se si queda más claro...je....