您的位置:首页 > 编程语言 > Java开发

Java重载的一个例子

2013-12-27 14:14 316 查看
class Human{
}

class Man extends Human{
}

class Woman extends Human{
}

public class Test {

void show(Human h) {
System.out.println("Human");
}

void show(Man m) {
System.out.println("Man");
}

void show(Woman w) {
System.out.println("Women");
}

public static void main(String  [] argv) {
Human a = new Man();
Human b = new Woman();
Human c = new Human();
Test test = new Test();
test.show(a);
test.show(b);
test.show(c);
}
}


以上程序的输出应该全是"Human",首先确定这是重载而没有涉及到多态,程序会根据调用方法的参数类型来确定应该调用哪一个方法,这是在编译期间就需要确定的,而以上的a,b,c的静态类型(声明类型)是唯一能在编译时确定的,所以会有这样的输出,如果注释掉第一个show方法,编译则不能通过,提示找不到方法的原型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: