正文
java 方法的重载、重写与重构
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
首先我们要知道重载、重写、重构的区别
重载:指的是在同一个类中,方法名相同,但是参数数量、参数类型或者返回类型不同的方法就叫做重载。
重写:
重写分两种、第一种的是在子类继承父类的情况下,通过@Override注解,子类方法名、参数、返回值全部一样,方法体不一样的方法就是重写。
第二种就是接口实现,实现接口必须实现接口下的所有方法,因为实现方法上也有@Override注解,所以也算是重写的一种吧。
重构:重构就是在原有的代码上,进行优化,使代码执行速度更快、或者更简单易读。
重载的优点:
1、相同的方法名,传入不同的参数调用的方法就不一样。 简单来说,就是你需要调用哪个方法,就传入重载对应的参数。
代码如下:
public class Protected1 { /**
* 调用重载方法
* @param args
*/
public static void main(String[] args) {
test1 test = new test1();
// 在这里我们可以看到,调用的方法名都是一样的,只是传入的参数类型与数量不一样
test.Overload();
System.out.println(test.Overload("重载2"));
test.Overload("重载2",3);
}
} class test1{ public test1() { }
// 在这我们可以看到,方法名称都是一样的,只是方法中参数类型与数量不一样
public void Overload() {
System.err.println("重载1");
} public String Overload(String str) {
return "重载2";
} public void Overload(String str,int i) {
System.err.println("重载3");
}
}
执行结果,代码复制即可运行
重写的优点
个人观点,如果是子类继承父类然后重写父类方法,和子类写的方法没什么区别,虽然说重写后子类要使用父类方法可以通过super点父类方法名就可以调用,但是何必要那么用呢。
但是接口就不一样了,一个实现类可以实现多个接口,增强类的重用性和复用性,扩展性;话不多说,直接看代码
public class Protected1 extends test1{ // 这里调用父类方法,我们可以看到,不用new 直接就可以使用了
public void test() {
// 在这里我们可以看到,调用的方法名都是一样的,只是传入的参数类型与数量不一样
super.Overload(); // 利用super可以调用父类方法
Overload();// 重写方法之后调用的就是重写方法
System.out.println(Overload("重载2"));
Overload("重载2",3);
} //重写之后的方法
@Override
public void Overload() {
System.err.println("重写之后的方法");
} public static void main(String[] args) {
Protected1 p = new Protected1();
p.test();
}
}class test1{
// 在这我们可以看到,方法名称都是一样的,只是方法中参数类型与数量不一样
public void Overload() {
System.err.println("重载1");
} public String Overload(String str) {
return "重载2";
} public void Overload(String str,int i) {
System.err.println("重载3");
}}