Java中方法重载和重写方法重载是指实现方法重载规则理论方法重载语义方法重载注意事项方法重写是指方法重写规则方法重写语义方法重写
方法重载是什么
方法重载是让类以统一的方式处理不同类型数据的一种手段。调用方法时通过传递给它们不同个数和类型的参数决定具体使用哪个方法,体现了多态性。
重载规则1.在同一个类中,多个方法具有相同的方法名、不同的参数列表(参数个数、参数类型、参数类型的顺序)。(同一个类中、多个方法、相同的方法名、不同的参数列表)四个条件,缺一不可!
2.方法的重载与方法的返回值类型无关
3.方法的返回值类型可以相同可以不同
理论重载解析:由于Java允许在一个类中,多个方法拥有相同的名字。当方法名称相同时,编译器会根据调用方法的参数个数、参数类型去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
方法重载的意义将具有相同行为,但功能不同的方法进行重载,通过使用同一方法名不同参数列表来提高程序的阅读性
举个简单的例子,定义add方法都是一种加法的行为,但是到底要加多少个数,需要方法的重载
方法重载注意事项1.方法里包含从父类继承而来的方法(既然继承了过来,就在同一个类)
2.方法之间需要存在一定的联系,因为这样可以提高程序的阅读性,一般只重载功能相似的方法!
3.不仅是一般的方法,构造方法也可以重载(毕竟构造方法也属于方法,是方法就可以重载)。
可以通过重写什么是方法重写的子类来定义新的特征。 如果子类需要修改父类的方法并进行一些扩展(添加功能),程序员通常也可以将这种操作方式称为方法重写,称为方法重写或复盖。
规则1.方法名必须相同
2.参数列表必须相同
3.返回值类型:父类的返回值类型不需要与被子类重写的方法的返回值类型相同。 例如:父类返回值类型是Supclass,子类的重写方法的返回值类型可以是Subclass,也同样构成重写@Override。
3.修饰符:范围可以扩大,但是不能缩小 publicprotecteddefaultprivate
4.方法体的实现不同(方法体相同的重写是无意义的!)
5.抛出的异常:范围可以被缩小,但不能扩大,更不能抛出新的异常 先了解下:无法找到类异常ClassNotFoundException 其中的Exception范围特别大的 后面再去详细讲,先有个印象
方法改写的含义父类的功能子类不一定都需要 或者 子类需要的功能父类不一定能满足,因此可以根据自己的需要重写方法,定义特定的行为的方法。
方法改写注意事项1.重写是方法的重写,和属性无关
2.重写是建立在继承关系之上的,只存在于子父之间,子类重写父类的方法!
Idea快捷键Alt Insert:Override methods
修饰符权限修饰符此类是包子类的其他private * default * * protected * * * * public * * * *总结首先要明确:方法重载和方法重写没有关系,是两个操作,规则互不干扰!
A:方法重载:
1.同一类中
2.方法名必须相同,参数列表必须不同
3.方法的返回值类型、权限修饰符任意
4.与方法的参数名无关(参数名只是个形式)
5.方法体不同
6.抛出异常:可以修改
作用时间不同:重载时编译器在编译期间就可以确定调用哪一个方法,而重写则有可能在运行期间才能确定
B:方法重写:
1.必须在具有继承关系的子类中
2.方法名和参数列表相同;方法的返回值类型可以不同
3.权限修饰符:子类的=父类的 重写只能扩大不能缩小,即不能做更严格的限制
4.与方法的参数名无关(参数名只是个形式)
5.方法体不同(相同无意义)
6.抛出异常:可以减少或删除,一定不能抛出新的或者更广的异常
如果我的博客对你有一点帮助的话,我希望大师傅给文章写赞后再去~
声明:由于个人能力有限,博文一定有不足之处。 希望学术同事能毫不吝惜地告诉我。 一起学习一起进步!
以上内容均为原创,转载请注明出处!