java种重载与重写的问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 20:18:06
java中重载与重写的用法??是不是重载是在一个类中的两个方法,重写是只子类与父类,可是请看下面这个程序,

class A
{
double f(double x,double y)
{
return x+y;
}
}
class B extends A
{
double f(int x,int y)
{
return x*y;
}
}
public class E
{
public static void main(String args[])
{
B b=new B();
System.out.println(b.f(3,5));
System.out.println(b.f(3.0,5.0));
}
}

请详细解释一下,谢谢!!

在这个程序中调用哪个函数一靠传递的参数来决定的事吗??

方法的重载可以由本类完成也可以由子类完成,是指写一个另外的方法,只不过名字一样,但参数不一样

方法的重写是指子类写一个和父类一模一样的方法(参数也一样),从而把父类的方法给覆盖掉了(除了final修饰的类无法被覆盖)

对于调用重载方法是通过参数类型和数量来判断应该调用哪个方法
注意:
对于方法void fun(int x,int y) {}
void fun(double x,double y) {}是他的重载
而int fun(int x,int y) {}则不是他的重载

重载是函数名相同,顺序或者个数不同
重写是重新写新的方法,也可以包含以前的方法

重写是改写从父类继承到的实现方法

public class Reload {
public static void main(String adf[]){
Son son=new Son();
son.me1(3,3);
//son.me1(5.0f,5.0f);
}

}
class Father{
public double me1(int i ,int j){
System.out.println("Father method"+"i="+i+"j="+j );
return i*j;
}
}
class Son extends Father{
public double me1(float i ,float j){
System.out.println("Son method"+"i="+i+"j="+j );
return i*j;
}
}

都回答的很不错。没我的份了。呵呵。。lz看看楼上的就应该会了。

System.out.print