重载:在一个类里面,有两个或以上的同名方法,它们的参数列表不同,此为重载。
//重载的例子
void funcA(int a){}
void funcB(int a, int b){}
重写:子类继承父类,子类有一个与父类相同参数签名的方法,并且需要重新定义此方法,此为重写。
//重写的例子
Class Father{
void func(){}
}
Class Sun{
@Overried
void func(){}
}
重载与重写的结合:
Interface AService{
public void funcA(int a);
public void funcA(int a, String s);
}
public class AImpl implements AService{
@Override
public void funcA(int a){
//这个方法主要是用来被重写的,重写后不影响funcA方法的主要处理逻辑
String s = "str";
this.funcA(a,s);
}
@Override
public void funcA(int a, String s){
//这里可以用来处理funcA方法的主要业务
}
}
Interface Bservice{
public void funcA(int a);
}
public class BImpl extends AImpl implements Bservice{
@Override
public void funcA(int a){
//此处重写了AImpl的方法funcA(int a),加上自己的处理逻辑,然后再调用funcA的主要处理方法
//……
//自己的处理逻辑
String s = "str";
funcA(a,s);//调用funcA处理主要逻辑
}
}
偶然发现重载和重写结合使用时,惊叹其巧妙的设计(原谅我是菜鸟)而记录
不知道写的啥,等有空再回来理理