Tengo problemas para entender el concepto detrás de las clases abstractas. La definición que estoy leyendo es que tienen al menos un método que se declara pero no se implementa, por lo que no se puede crear una instancia de la clase. La clase de calendario de Java es abstracta y no se puede crear una instancia con el operador Nuevo, sin embargo, hay un método llamado getInstance() que devuelve un objeto de calendario. ¿Como funciona esto?ayuda a comprender las clases abstractas: método de calendario de Java getInstance()
Calendar cal = new Calendar(); //doesn't work
Calendar cal = Calendar.getInstance(); //works
La respuesta de Jon es excelente, pero aquí hay una adición rápida: las clases abstractas nunca se pueden crear instancias. NO TIENEN que contener ningún método abstracto, y de hecho, pueden y suelen contener muchos métodos que en realidad tienen código. En general, se marcan como abstractos porque no proporcionan alguna funcionalidad, y la expectativa es que una subclase proporcionará eso. – Kylar
Subclases de fábrica abstractas que deciden qué instancia devolver –
Todos, gracias por su ayuda. Después de leer sus respuestas, volví a leer los tutoriales de Java sobre la herencia y los métodos estáticos, y ahora lo tengo claro. – tmakino