使用类名调用静态方法,而不要用实例或表达式来调用
- 明确使用类名调用静态方法不容易造成混淆
- 当子类和父类有同名静态方法时,声明父类引用子类实例,调用该静态方法调用的是父类的静态方法而非子类的静态方法
class Animal {
public static void name() {
System.out.println("i am Animal");
}
}
class Dog extends Animal {
public static void name() {
System.out.println("i am Dog");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Animal();
Animal dog = new Dog();
animal.name();
dog.name();
}
}
输出结果为:
i am animal
i am animal