Saltar al contenido

Matriz de clase abstracta

este problema se puede resolver de diversas maneras, pero en este caso te compartimos la resolución más completa en nuestra opinión.

Solución:

Game[] gamesArray = new Game[10];

La creación de instancias significa la creación de una instancia de una clase. En el escenario anterior, acaba de declarar un gamesArray de tipo Game con el tamaño 10(solo las referencias y nada más). Es por eso que no arroja ningún error.

Obtendrá el error cuando intente hacer

gamesArray[0] = new Game(); // because abstract class cannot be instantiated

pero haz un array de la clase abstracta?

Más tarde, puedes hacer algo como esto.

gamesArray[0] = new NonAbstractGame(); // where NonAbstractGame extends the Games abstract class.

Esto está muy permitido y es por eso que irás a una clase abstracta en primer lugar.

porque cuando haces una array de algún tipo de objeto, no está tratando de crear una instancia de los objetos. Todo lo que está haciendo es una serie de ranuras para poner referencias.

new Game[10]; hace 10 ranuras para Game referencias, pero no hace una sola Game.

Porque no violas la abstract class reglas. Esencialmente,

Game games = new Game();

se descompone en:

Game games; //Will Work because it's just a declaration
games=new Game(); //Will not work because it's instantiation

Si bien la creación de objetos es perfectamente válida para las clases abstractas, no se permite la inicialización.

Reseñas y calificaciones

Si para ti ha resultado de ayuda este artículo, te agradeceríamos que lo compartas con más desarrolladores de esta forma contrubuyes a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *