方法重写
方法重写需要在子类重写父类的方法
在方法名/返回值/参数一样的情况下方法体不同
/**
* @author Mxhlin
* @Email fuhua277@163.com
* @Date 2022/09/09/13:57
* @Version
* @Description 父类
*/
public class C {
public int sum(int a,int b){
return a+b;
}
}
这是一个父类
/**
* @author Mxhlin
* @Email fuhua277@163.com
* @Date 2022/09/09/14:00
* @Version
* @Description
*/
public class D extends C{
public int sum(int a,int b){
return a+5+b+5;
}
}
这是一个子类
/**
* @author Mxhlin
* @Email fuhua277@163.com
* @Date 2022/09/09/14:02
* @Version
* @Description
*/
public class CandDTest {
public static void main(String[] args) {
D d = new D();
int sum = d.sum(2, 3);
System.out.println(sum);
}
}
这是测试类
如果我们在子类进行了重写,就会覆盖父类的方法,执行子类的方法。
这就是方法重写
方法重载
方法重载不局限于继承,在一个类中也可以实现。
在方法名相同时,其他属性不同时。
/**
* @author Mxhlin
* @Email fuhua277@163.com
* @Date 2022/09/09/13:57
* @Version
* @Description 父类
*/
public class C {
public int sum(int a,int b){
return a+b;
}
}
这是一个父类
/**
* @author Mxhlin
* @Email fuhua277@163.com
* @Date 2022/09/09/14:00
* @Version
* @Description
*/
public class D extends C{
public String sum(String are){
return are;
}
}
这是一个子类
/**
* @author Mxhlin
* @Email fuhua277@163.com
* @Date 2022/09/09/14:02
* @Version
* @Description
*/
public class AandBTest {
public static void main(String[] args) {
D d = new D();
int sum = d.sum(2, 3);
System.out.println(sum);
String sum1 = d.sum("你好啊!王木木");
System.out.println(sum1);
}
}
这是一个测试类
测试结果
方法重载在我们调用时系统会根据我们传入的实参来判断使用哪一个方法。
在同一个类时
/**
* @author Mxhlin
* @Email fuhua277@163.com
* @Date 2022/09/09/17:24
* @Version
* @Description
*/
public class E {
public static void main(String[] args) {
System.out.println(sum("你好啊,王木木"));
System.out.println(sum(4, 3));
}
public static int sum(int a,int b){
return a+b;
}
public static String sum(String are){
return are = "你好啊!王木木。";
}
}
输出结果
在同一个类时,方法重载也可以生效。