Java 静态类 static

时间:2022-05-14 19:55:35

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

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

Java 静态类 static
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");
}
}
Java 静态类 static

结果:

Parent->display
Java 静态类 static
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");
}
}
Java 静态类 static

结果:

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