概述
Java中有两个很重要的概念,分别是方法重载和方法覆写
先分别介绍这两个概念,再统一分析它们的差别
1. 方法重载
可以说,方法重载是Java语言的一大特点与优点,在C语言中,不允许拥有两个同名的函数,这给我们带来很大不便,而在Java中,支持多个方法可以同名(合法要求下),这让用户端得到很大便利,调用一个名字则可以使用多种不同参数的方法;
下面看一个方法重载的例子:
public class Exer1 {
public static void main(String[] args) {
System.out.println(add(2, 4));
System.out.println(add(2.0, 4.0));
}
public static int add(int x, int y) {
return x + y;
}
public static double add(double x,double y) {
return x + y;
}
}
从这段代码可以看到,有了方法重载,可以接受不同类型的参数,返回不同类型的值,在C语言中,必须实现两个函数才能实现;
方法重载定义:
- 方法名相同
- 参数的类型、顺序或个数不同(参数列表不同)
- 与返回值类型无关
2.方法覆写
方法覆写在Java中显得尤为重要。这与继承有着密切的关联;
在Java中,方法覆写一定发生在继承关系中,若在同一个类中,这不叫方法覆写,也会报错
下面看一段代码:
class Person {
private String name;
public void fun() {
System.out.println("father");
}
}
class Student extends Person {
private String school;
public void fun() {
System.out.println("son");
}
}
public class Exer1 {
public static void main(String[] args) {
Student stu = new Student();
stu.fun();
}
}
在这段代码中,运行的结果是:son
在main方法中,我们记住,是谁new的这个对象,则调用谁的方法;
方法覆写定义:
- 与父类方法名称、参数类型及个数完全相同
- 覆写方法不能拥有比父类更为严格的访问控制权限(public>default>private)
- 若父类方法由private修饰,则此方法不能够方法覆写(private代表只能在本类中可见,则子类根本不知道父类有这样一个方法,则不能覆写)
除了方法覆写,还有属性覆盖这一概念,但实际意义不大,因为属性一般都用private封装,这里我们不深入了解
3.方法重载与方法覆写的区别⭐
前面分别详细介绍了,这里我直接归纳:
区别 | 重载 | 覆写 |
---|---|---|
概念 | 方法名称相同、参数的类型及个数不同 | 方法名称、返回值类型、参数的类型及个数完全相同 |
范围 | 一个类 | 继承关系 |
限制 | 没有权限要求 | 被覆写的方法不能拥有比父类更严格的访问控制权限 |
最后
以上就是呆萌草莓为你收集整理的方法重载与方法覆写的概念与区别Java中有两个很重要的概念,分别是方法重载和方法覆写的全部内容,希望文章能够帮你解决方法重载与方法覆写的概念与区别Java中有两个很重要的概念,分别是方法重载和方法覆写所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复