Red de conocimiento informático - Aprendizaje de código fuente - ¿Una clase abstracta tiene un constructor?

¿Una clase abstracta tiene un constructor?

Pregunta 1: ¿Cómo entender el papel de los métodos constructores en las clases abstractas de Java? El constructor de la clase abstracta de Java es el mismo que el constructor de la clase ordinaria

Se utiliza para inicializar la clase

Solo que el constructor de la clase abstracta no se puede llamar directamente. porque la clase abstracta no puede ser instanciación

Pero una vez que una clase normal hereda una clase abstracta, también puede llamar al constructor de la clase abstracta en el constructor

También puede usar los métodos de la clase abstracta

Es comprensible que una clase abstracta sea una clase diferente de la que no se puede crear una instancia.

Es comprensible que una clase abstracta sea una clase diferente de la que no se puede crear una instancia.

Sin embargo, si agrega métodos en una clase abstracta, debe anular estos métodos en la subclase

p>

Pregunta 2: ¿Por qué la clase abstracta tiene un constructor, pero la interfaz no tiene constructor? Las clases abstractas tienen como objetivo lograr polimorfismo (vinculación dinámica) y puede haber implementaciones concretas de funciones en clases abstractas. Las clases abstractas están diseñadas para lograr polimorfismo (enlace dinámico) y puede haber implementaciones concretas de funciones en clases abstractas.

Las interfaces, por otro lado, no proporcionan ninguna implementación concreta y están diseñadas para permitirle implementar una variante de herencia múltiple de C mediante la creación de una clase que se puede actualizar a múltiples tipos base.

Pregunta 3: En Java, ¿pueden las clases abstractas tener métodos constructores? Las clases abstractas pueden tener métodos constructores, pero no se pueden crear instancias de clases abstractas directamente.

Pregunta 4: Novato ~~ Problema con el constructor de clases abstractas de Java Cat myCat = new Cat(myCat); A tu derecha, ¿qué se pasa myCat como constructor? Su programa requiere el tipo String. ¿Puede considerar cambiarlo a Cat myCat = new Cat(myCat);

Pregunta 5: En Java, las clases abstractas pueden tener métodos constructores. El método constructor tiene dos funciones, una es inicializar variables y la otra es crear instancias de objetos. Las clases abstractas no se pueden crear instancias y se pueden usar para otros propósitos.

Pregunta 6: ¿Para qué sirven los constructores en clases abstractas? El método constructor de la subclase puede llamarlo; de lo contrario, será problemático para la subclase cargar las propiedades privadas de la clase padre abstracta.

Pregunta 7: ¿Hay un constructor en la clase abstracta? El primer paso es crear una clase abstracta que pueda ser llamada por el constructor de la subclase. ¿Una clase abstracta tiene un constructor? Se recomienda leer el artículo de Baidu Wenku Descifrando funciones abstractas de la escuela secundaria

wenku.baidu/..._t1y4_

Pregunta 8: La clase principal de una clase abstracta en Java debe contener ¿Un constructor sin parámetros? No necesariamente, pero debe haber un constructor, independientemente de si hay parámetros.

El constructor es la base del objeto. Sin el constructor, no habría objeto.

Si escribe un constructor con parámetros en la clase principal (aquí su clase abstracta), entonces debe escribir un constructor para llamar al constructor de la clase principal en la función de herencia de la clase secundaria

Ejemplo: Clase abstracta Persona { Define una clase abstracta que debe ser heredada

Persona(int i) {

}

}

clase pública Estudiante extiende Persona {

Estudiante() {

super(int i): debe mostrarse para llamar al constructor padre super en nombre del objeto padre

}

}

}

}

}

Si en la clase padre hay un constructor sin parámetros, puede escribir el constructor de la clase principal sin mostrarlo en la clase secundaria, Java llamará automáticamente al constructor sin parámetros

Ejemplo:

clase abstracta Persona { Definir una clase abstracta que debe ser heredada

Person() { No es necesario escribir este constructor, Java agregará un constructor sin parámetros de forma predeterminada

}

}

}

clase pública Estudiante extiende Persona {

Estudiante() {

super() Puede omitirse, Java. llamará al método super() del método en sí

}

}

}

Pregunta 9: en abstracción Después de un constructor está definido en una clase, ¿tengo que escribir un constructor en una subclase que lo herede? 1.

2. Todas las clases tienen constructores. Si no damos un método constructor, el sistema proporcionará automáticamente un método constructor sin instanciar; si damos un método constructor, el sistema no lo proporcionará;

3.

3. Todos los métodos constructores de la subclase accederán al método constructor vacío de la clase principal de forma predeterminada ---- gt; un nuevo objeto, primero irá a la clase principal para completar la inicialización de la clase principal (el valor de inicialización de la clase principal existe en la memoria del montón del nuevo objeto de la subclase y se usa para abrir un área determinada de la memoria del montón.) (Nuevamente, por un momento, la primera declaración de cada constructor es super (

4. Entonces la pregunta es, ¿qué pasa si la clase padre no tiene un constructor sin referencias?

Nadie dirá La clase principal no tiene constructor.

El sistema agregará este constructor de forma predeterminada (como se mencionó anteriormente), lo que significa que la clase principal escribe manualmente un constructor de parámetros. y la clase secundaria hereda el constructor a través de super o this, por lo que la subclase hereda el constructor escribiendo el método del constructor y agregando this o super

5. Puede acceder a la clase principal a través de la palabra clave super<. /p>

Es difícil decirlo, desde aprender Java hasta abandonar Java

Lo primero que debes saber es que no puedes acceder a la clase principal

.