Java里方法的重载![大笑](http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif)
public class liyi
{
void p(int i)
{
System.out.println(i);
}
void p(String j)
{
System.out.println(j);
}
public static void main(String[] args)
{
liyi a=new liyi();
a.p(5);
a.p("liyi");
}
}
在讲重载时先讲下什么是方法,方法由 返回值类型 方法名称 (参数类型 类型值 )组成 ,前面有权限,这里就不写了,方法签名指得是方法名以及参数类型,返回值类型不是方法签名的一部分,重载就是方法名相同,参数类型不同,这与方法的返回值类型,以及参数类型值无关。所以不存在一个类中有两个方法签名相同,而方法返回值类型不同的方法。
在讲讲程序的执行过程。刚开始加载类,程序从main方法开始,然后jvm在堆中给对象分配一片内存空间,对象的引用a在栈中,用引用调用方法体中的p方法,编译器会根据
方法给出的接受类型来挑选相应的方法。所以a.p(5)与a.p("liyi")是不同的结果。