La relación entre las notas de estudio de Java 08 clases

final es la clase final y no se puede heredar.
El método de construcción primero ejecuta el método de construcción de la clase principal y luego ejecuta el método de construcción de la subclase.

A continuación, simplemente escribí tres clases para verificar el orden de ejecución del constructor.


public class A1 {
    
    
     public int pf(int i){
    
    
         System.out.println("Parent....pf");
         return i*i;
     }

     public A1(int i){
    
    
         System.out.println("父类构造A1(int i)");
     }
     static {
    
    
         System.out.println("父类构造A1-static");
     }
    {
    
    
        System.out.println("父类构造A1-init");
    }
}

public class B1 extends A1{
    
    


    public B1(int i) {
    
    
        super(i);
        System.out.println("A1的儿子,子类构造B1(int i)");
    }

    /**
     * 方法的重载
     * 当参数,返回值相同时是重写
     */
    public double pf(double d){
    
    
        return d*d;
    }
    static {
    
    
        System.out.println("A1的儿子,子类构造B1-static");
    }
    {
    
    
        System.out.println("A1的儿子,子类构造B1-init");
    }



}

public class C1 extends B1{
    
    
    public C1(int i) {
    
    
        super(i);
        System.out.println("B1的儿子,子类构造C1(int i)");
    }



    static {
    
    
        System.out.println("B1的儿子,子类构造C1-static");
    }

    {
    
    
        System.out.println("B1的儿子,子类构造C1-init");
    }
}

El resultado de la ejecución se muestra en la siguiente figura.

inserte la descripción de la imagen aquí
1. Ejecute primero el código estático de la clase principal y luego ejecute el código estático de la subclase.
2. Ejecute el bloque de inicialización y el método de construcción de la clase principal y luego ejecute la subclase.
Si se vuelve a instanciar, el bloque estático ya no se ejecuta.

clase abstracta

1. Cuando se declara una clase abstracta, clase abstracta(), nombre de clase {}

2. Las clases abstractas no se pueden instanciar directamente.

3. Una clase abstracta puede tener un método abstracto abstract void show(), no puede haber cuerpo de método

4. Los métodos abstractos no se pueden modificar con privados.

5. Las clases abstractas son más como una especificación de programación.

6. Una clase con métodos abstractos debe ser una clase abstracta. Una clase abstracta puede tener métodos abstractos, métodos ordinarios o ningún método abstracto.

Supongo que te gusta

Origin blog.csdn.net/xxxmou/article/details/129071451
Recomendado
Clasificación