Duda clase Calendar-Abstracta

ansebaxxx
28 de Junio del 2006
Buenos dias... no logro entender porqué se declara la clase Calendar como abstract y sin embargo a través del método getInstance se puede instanciar un objeto de dicha clase ¿ no se supone que de una clase abstracta sólo se pueden derivar (extend) otras clases y que no deberían poderse instanciar objetos de clases abstractas ? ¿ o me he perdido en algun punto ?

Saludos

Diego
28 de Junio del 2006
Una clase abstracta no se puede instanciar, pero sí declarar, y en el método lo que hacen es declarar el tipo; si llamas al método getClass().getName() sabrás en tiempo de ejecución qué subclase es realmente; aunque te recomiendo que no hagas un cast a dicha clase, aunque tenga mayor funcionalidad, porque si se declara Calendar, en el futuro podría devolverse otra subclase y tu código quedaría inservible.

Espero haberte aclarado la duda.