Java 静态类 static

静态的方法是非虚方法(Java中的非虚方法有private,final,static,构造器,非虚方法无需根据具体的对象遍历方法区的方法表,决定调用关系)

也就是说,对于静态类型方法的调用,是其声明类型的,如Parent c = new Child(); Parent便是其外观类型(声明类型),故调用的便是Parent类型的静态方法

复制代码
package com.company;

public class Main {
    public static void main(String[] args) {
        Parent c = new Child();
        c.display();
    }
}

class Parent {
    public static void display() {
        System.out.println("Parent->display");
    }
}

class Child extends Parent {
    public static void display() {
        System.out.println("Child->display");
    }
}
复制代码

结果:

Parent->display
复制代码
package com.company;

public class Main {
    public static void main(String[] args) {
        Parent c = new Child();
        c.display();
    }
}

class Parent {
    public void display() {
        System.out.println("Parent->display");
    }
}

class Child extends Parent {
    public void display() {
        System.out.println("Child->display");
    }
}
复制代码

结果:

Child->display

 ==================================================================================

package com.company;


public class Main {

    static{
        System.out.println("test static 1");
    }
    
    public static void main(String[] args) {

    }

    static{
        System.out.println("test static 2");
    }

}

结果:

test static 1
test static 2

虽然在main方法中没有任何语句,但是还是会输出。另外,static块可以出现类中的任何地方(只要不是方法内部,记住,任何方法内部都不行),并且执行是按照static块的顺序执行的。

http://www.cnblogs.com/dolphin0520/p/3799052.html

原文地址:https://www.cnblogs.com/hongdada/p/5826114.html