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方法,编译则不能通过,提示找不到方法的原型。
相关文章推荐
- 一个例子,搞定java的方法重载
- Java方法重载后的匹配规则的一个例子
- Java中一个for语句导致无穷大死循环的例子
- java-I/O File类(2)-FilenameFilter()-输入输出流的大概介绍以及一个小例子
- 一个经典例子让你彻彻底底理解java回调机制
- java用全注解实现ssh的一个完整例子
- 一个经典例子让你彻彻底底理解java回调机制
- java EJB 加密与解密原理的一个例子
- ABAP--一个极好的调用外部java程序的Search Help Exit的实例(RFC好例子)
- 一个基于RSA算法的Java数字签名例子
- 一个java解析xml的简单例子
- 一个例子说明java局部代码块、静态代码块、构造代码块区别
- java多态/重载方法——一个疑难代码引发的讨论
- 一个简单的Java UDP协议通信的例子
- java多态性中关于private的一个例子
- java.nio将一个文件的内容写入到另一个的文件简单例子
- [原创][Java]由一个Java编程思想书中线程间协作的例子想到的
- java中的线程死锁的一个例子
- 一个基于RSA算法的Java数字签名例子
- java学习--多线程发生死锁的一个例子