Java之重写与重载

很久之前写的博客,忘记发了。。。

重写(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编译器根据方法签名判断哪个方法应该被调用。

方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。

重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法

猜你喜欢

转载自blog.csdn.net/Andrelia20171760/article/details/81191535