标签:
首先,java中存在两种意义的多态, 重载(Overload)和重写(Override),重写是与继承有关的多态。
第一种:操作名称的多态,即有多个操作具有相同的名字,但这些操作锁接受的消息类型必须不同。
第二种:和继承有关的多态,指同一个操作被不同而类型对象调用时可能产生不同的行为。
这里将简单的介绍第一种多态,简单的认识下java中方法的重载:
那什么是重载? 即一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同:
1) 参数个个数不同。
2) 参数个数相同,但参数列表中对应的某个参数的类型不同。
另外还需要注意的是:方法的返回类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使返回类型不同,也必须保证参数不同。
public class People { public int hello(int x, int y){ return x+y; } public float hello(float x, int y){ return x+y; } public double hello(double x, int y){ return x+y; } } public class TestPeople { /** * @author 牧羊的伯格女皇 * @param args * @date 2015-10-13 */ public static void main(String[] args) { People p = new People(); System.out.println(p.hello(10, 10)); //20 System.out.println(p.hello(12.12f, 7)); //19.119999 System.out.println(p.hello(12.03, 7)); //19.03 } }
5. 在写方法的重载的时候,还需要避免重载出现歧义,即不清楚应当执行重载方法中的哪一个,让程序无法通过编译。
void cry(double x, int y){ .... } void cry(int x,double y){ ... } p.cry(10,10); //会出现提示信息 :对cry的引用不明确。
标签:
原文地址:http://my.oschina.net/u/2405367/blog/516849