今天看完《Java Puzzlers》的第八章,里面各种name reuse,章节最后做了一个非常细致的总结!
Overriding(覆写)
一个实例方法可以override它的父类中可以访问的具有相同签名的所有实例方法。
class Base {
public void f() { }
}
class Derived extends Base {
public void f() { } // overrrides Base.f()
}
Hiding(隐藏)
一个域,静态方法,成员类型都会隐藏他的父类中可以访问的具有相同名字的域。静态方法和成员类型
class Base {
public static void f() { }
}
class Derived extends Base {
public static void f() { } // hides Base.f()
}
我想到了《java puzzlers》的48题
class Dog {
public static void bark() {
System.out.print("dog ");
}
}
class Basenji extends Dog {
public static void bark() { System.out.print("Basenji");}
}
public class Bar