如果Java基礎類有一個方法名被“過載”使用多次,在衍生類裡對那個方法名的重新定義就不會隱藏任何基礎類的版本。所以無論方法在這一級還是在一個基礎類中定義,過載都會生效。
public class Hide { public static void main(String[] args) { Bart b = new Bart(); b.doh(1); // doh(float) used b.doh('x'); b.doh(1.0f); b.doh(new Milhouse()); } } class Homer{ char doh(char c){ System.out.println("doh(char)"); return 'd'; } float doh(float f){ System.out.println("doh(float)"); return 1.0f; } } class Milhouse{} class Bart extends Homer{ void doh(Milhouse m){ } }