如果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){ } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16004.html