[Java] Algunos puntos gramaticales dignos de mención 2

1. ¿Qué líneas de las siguientes producirán un error?

1
2
3
4
1 byte a1 =  2 , a2 =  4 , a3;
2 short s =  16 ;
3 . a2 = s;
4 . a3 = a1 * a2;

línea 3 y línea 4.

El tipo corto no se puede convertir al tipo de byte.

a1 * a2 necesita convertir el tipo de byte al tipo int, que no está permitido


2. 

class Person {
    String name = "No name";
    public Person(String nm) {
        name = nm;
    }
}
class Employee extends Person {
    String empID = "0000";
    public Employee(String id) {
        empID = id;
    }
}
public class Test {
    public static void main(String args[]) {
        Employee e = new Employee("123");
        System.out.println(e.empID);
    }
}
编译 错误 : El superconstructor implícito Person () no está definido. Debe invocar explícitamente a otro constructor

En la herencia de Java, las subclases no heredan el método de construcción, solo lo llaman implícita o explícitamente.

Cuando no está escribiendo, de hecho, el sistema llama implícitamente al método de construcción sin argumentos de la clase principal.

Además, para una clase, después de crear un método de construcción de parámetros, ya no se genera ningún método de construcción de parámetros.

Entonces, si no hay un método de construcción sin parámetros en la clase principal, hay un método de construcción que contiene parámetros.

Al crear una subclase, debe llamar explícitamente al constructor parametrizado de la clase principal en la primera línea del constructor de la subclase.

Si no llama explícitamente al constructor paramétrico de la clase principal, el sistema llamará al constructor paramétrico de la clase principal de forma predeterminada.

Pero en este momento la clase principal no tiene un método de construcción sin parámetros, entonces ocurrirá el error de compilación anterior.

Cambie el método de construcción de la clase Empleado a lo siguiente para compilar y pasar:

 public Employee(String id) {
    	super(id);
        empID = id;
    }

3. La clase B se deriva de la clase A, luego la clase B puede acceder a los miembros públicos y a los miembros protegidos de la clase A. Solo se puede acceder a los miembros privados de la clase principal en la clase actual.

4. Clases comunes seguras para subprocesos: StringBuffer , Vector, Hashtable, Stack


Supongo que te gusta

Origin blog.csdn.net/michellechouu/article/details/48739079
Recomendado
Clasificación