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

Java中的方法重载的参数是以静态类型为依据

2015-09-23 14:35 585 查看
public class Test {
public static void main(String[] args) {
Human man = new Man();
Test test = new Test();
test.sayHello(man);
}

public void sayHello (Human guy) {
System.out.println("Human");
}
public void sayHello (Man guy) {
System.out.println("Man");
}
public void sayHello (Woman guy) {
System.out.println("Woman");
}

}

abstract class Human {

}
class Man extends Human {

}
class Woman extends Human {

}


程序的输出结果为 :Human

Human man = new Man();


这里的”Human”称为变量的静态类型(Static Type),或者叫做外观类型(Apparent Type);后面的”Man”则称为变量的实际类型(Actual Type),在方法重载的时候是通过参数的静态类型而不是以实际类型做为依据的,所以这里会调用到参数为的Human的sayHello方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java