这篇文章主要介绍“Java中方法重写与重载有什么区别-面试常考问题”,在日常操作中,相信很多人在Java中方法重写与重载有什么区别-面试常考问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中方法重写与重载有什么区别-面试常考问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Java中方法重写与重载的区别
重 写 | 重 载 |
子类方法对父类方法的覆盖 | 同一个类中同名方法的重载(同一类包括从父类继承的方法) |
方法名相同且参数个数类型顺序相同 | 参数个数或类型顺序至少满足一点不同 |
只允许访问权限更宽松 | 访问权限任意 |
返回值类型若是基本类型则不允许不同;若是复合类型则在子类与父类间必须至少存在继承关系 | 返回值类型任意 |
final修饰的父类,子类不能重写,反之可以 | final任意 |
静态方法与实例方法不能互相重写 | 任意 |
构造方法不能被重写 | 构造方法可以重载,任意 |
一句话描述清楚:
重写注解:@Override
重载注解:@Overload
方法的重载是方法名相同,方法返回值和修饰符可以不同,方法的形式参数增加或减少,同名方法根据不同传参来处理不同逻辑
方法的重写是方法名相同,方法返回值相同,修饰符相同.方法的形式参数相同,方法体被重写,方法体中的代码功能有所不同,子类对父类方法重新改造,外部样子不能改变,内部逻辑可以改变
代码示例:
方法重写
public void hello(String name){ System.out.println("你好" + name); } //重写了hello方法,方法体中的代码实现的功能已改变 public void hello(String name){ System.out.println("你好,我叫" + name); }
方法重载
public void hello(String name){ System.out.println("你好" + name); } //形式参数不同,实现的逻辑不同 public void hello(String name,int age){ System.out.println("你好我叫" + name + "今年" + age + "岁"); } //形式参数不同,实现的逻辑不同,并且方法返回值不同,且修饰符不同 private String hello(String name,int age,String sex){ return "你好我叫" + name + "今年" + age + "岁"+"性别"+sex; }
到此,关于“Java中方法重写与重载有什么区别-面试常考问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!