class Dog {
public static void bark() {
System.out.print("Dog ");
}
public static final int X = 10;
public void bark2() {
System.out.print("Dog ");
}
}
class Basenji extends Dog {
public static void bark() {
System.out.println("Basenji");
}
public static final int X = 20;
public void bark2() {
System.out.println("Basenji");
}
}
public class Bark {
public static void main(String args[]) {
// 静态属于类属性,不会动态分配,编译阶段即可确定,因此
Dog woofer = new Dog();
Dog nipper = new Basenji();
// Dog Dog Basenji
woofer.bark();
nipper.bark();
new Basenji().bark();
// 动态分配
// Dog Basenji Basenji
woofer.bark2();
nipper.bark2();
new Basenji().bark2();
// 10
System.out.println(woofer.X);
System.out.println(nipper.X);
// 20
System.out.println(new Basenji().X);
}
}
方法(包括静态方法)不可以被隐藏(即减少访问权限);
域可以的,但是不合理,因为不符合里氏替换原则;
静态方法编译阶段即确定调用者。不存在动态绑定。