重载
方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
一般重载多用于构造函数之中,下面见一个实例:
public class person{
String name;
String birth;
int age;
public person(){
}
public person(String name){
this.name=name;
}
public person(String name,int age){
this.name=name;
this.age=age;
}
}
以上就是一个方法重载的例子,通过不同的参数,创建不同的构造函数,增加灵活性。
同时重载有以下几点注意事项:
1.必须具有不同的参数列表;
2.可以有不同的返回类型、不同的修饰符、不同的异常;
3.也就是评判重载的唯一标准就是参数列表,参数列表的数量,顺序都可以作为标准
重写
方法重写就是子类中对父类的某方法进行重新定义,其子类的该方法名以及参数位置和个数均与父类相同。
一般的重写是用于子类特有的特性,下面见一个实例:
public class text{
}
class Father{
public void eat(){
}
}
class Son extends Father{
public void eat(){
System.out.println("我是子类");
}
}
以上就是一个简单的方法重写的实例,子类的eat()方法的参数列表、返回值、方法名都和父类的一模一样,所以运行的时候,会运行子类的方法,从而覆盖点父类的方法,这个有点类似于,局部变量会覆盖全局变量的意思。
同时重写有以下几点注意事项:
1.参数列表以及返回的类型必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
2.访问修饰符的限制一定要大于或者等于被重写方法的访问修饰符(public>protected>default>private),以及重写方法的检查的异常范围也不能比被重写方法的检查异常广泛
3.final关键字修饰的方法不能被重写,static关键字修饰的方法只能被static修饰的方法重写
4.如果想在重写的方法中使用父类的方法,可以使用super关键字
总结:
关于更多的重写和重载的方法还是需要在程序中体会,单独的一两篇博客并不能完全搞懂,关于重写和重载的区分以及规则是很重要的一个理论知识点,可以多理解理解