java学习笔记——方法重载修饰符

方法重载:

  1.方法名必须相同

  2.参数列表必须不同

  3.其他修饰符可以相同,可以不同

  4.可以抛出不同异常

方法重写:

  1.方法名、参数列表、返回值类型必须相同

  2.访问修饰符必须大于或者等于被重写的方法

  3.重写的方法中,不能抛出新的异常或被重写的方法更多、更大的异常,但一定会抛出异常,也就是说只能抛出相同的异常或是被重写方法异常的子异常,还可以抛出非编译异常(RuntimeException)

  4.重写的方法只会存在于具有继承关系的子类中,当父类方法用private修饰,或者final修饰,子类中有重名方法,不是重写,是定义的新方法

  5.非静态方法不能被重写成静态方法

 

两者区别:

  两者是完全不同的东西,方法重写是父子继承关系的体现,也是实现多态性的其中一步,而方法重载可以看作在同一个类中定义了两个虽然同名但完全不同的方法。

关于Java中final方法重写重载

  1.final方法修饰的方法可被重载

  2.final方法修饰的方法不可被子类重写

  3.private修饰的方法已经隐士的声明了final,因为private修饰的方法只能被该类自己访问,所以子类中如果有相同方法名,形参列表,返回值的方法,不是重写,是重新定义了子类自己的新方法

public class test { public final void testhanshu(){} //private void testhanshu(int x){} } class testson extends test{ public void testhanshu(){}//不可被定义,父类用final修饰,且该方法符合重写规则 }

 

若父类方法用private修饰,可重新定义一个同名子类方法(与final无关,final加不加都可以,private相当于隐式final):

public class test { private final void testhanshu(){} //private void testhanshu(int x){} } class testson extends test{ public void testhanshu(){}//可被定义,新方法,不是重写 }

 

部分转自:(18条消息) 简单明了——重载与重写区分及修饰符权限问题_无知是恶-CSDN博客_重载方法的访问修饰符可以不同


__EOF__

本文作者Ripple030
本文链接https://www.cnblogs.com/rippleD/p/15771411.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   rippleD  阅读(650)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示