很久之前写的博客,忘记发了。。。
重写(Override)
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
重写的好处在于子类可以根据需要,定义特定于自己的行为。
再换一种简单的说法:
父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。
但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。
方法重写又称方法覆盖。
因为重写后方法名称一样,如果再想调用父类的方法,可使用super关键字,该关键字引用了当前类的父类。
重写的主要优点是能够定义某个子类特有的特征:
public class Father{
public void speak(){
System.out.println(Father);
}
}
public class Son extends Father{
public void speak(){
System.out.println("son");
}
}
这个例子够简单明了了吧,哈 哈。
重载
就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。
如
public static double max(double num1, double num2)
{
if (num1 > num2)
return num1;
else return num2;
}
如果你想让它返回int型数据便可这样写
public static int max(int num1, int num2)
{
if (num1 > num2)
return num1;
else return num2;
}
这就是重载了。
Java编译器根据方法签名判断哪个方法应该被调用。
方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。
重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法