En el mundo OO e, clases abstractas utiliza para imponer algunas restricciones de aplicación en el diseño &. Nada mas. Nunca tiene que usar clases abstractas en ningún caso. Pero puede haber casos en los que sea mejor imponer esas restricciones. Entonces, ¿qué son ellos?Veamos comparando sus oo-contrapartes.
Las clases abstractas vs interfaces de
Como saben, estos son dos de los conceptos principales de la herencia.
Básicamente, la interfaz se usa solo para declarar que está dispuesto a heredar el servicio subyacente y eso es todo. No contiene implementación & no tiene ninguna funcionalidad. En ese sentido, la interfaz es abstracta. Es por eso que es más una restricción de diseño que una restricción de implementación. Piense en una toma de auriculares en un altavoz. Cada auricular necesita implementar la interfaz jack (con los métodos start, stop, listen, turndown, turnup). Cada auricular debe anular esta interfaz para heredar la funcionalidad que el altavoz proporciona e implementar en consecuencia.
Las clases abstractas, por otro lado, pueden incluir métodos con una implementación. Esa es la diferencia básica y, en ese sentido, puede utilizar reutilizar más que una interfaz. Además, pueden contener campos privados no protegidos & que no se pueden utilizar a través de interfaces. Puede obligar a las subclases a implementar algunas funcionalidades imprescindibles con métodos abstractos (aquellos sin implementaciones). Clases abstractas más ágiles que interfaces.
Por supuesto, sin mencionar, solo puede extender una clase en Java en donde puede implementar la cantidad de interfaces.
Las clases abstractas vs clases regulares
¿Por qué no utilizar las clases regulares a continuación. ¿Cuál es el beneficio de usar una clase abstracta? Esto es bastante simple. Si usa clases abstractas, fuerza la funcionalidad central a ser implementada por los hermanos. Como desarrollador, no necesita recordar que debe implementar las funciones esenciales. Aquí es donde las clases abstractas imponen restricciones de diseño sobre las clases regulares. Además, al hacer que la clase sea abstracta evitas que la clase (incompleta) se cree accidentalmente.
¿Serán los downvoters por qué responden negativamente?!?! – apollodude217