浅谈java中的重载和重写的区别

目录
  • 1.重载
    • 小结:
  • 2.重写
    • 小结:
  • 总结

1.重载

重载指在一个类中,具有多个相同名称的方法,他们的参数列表却不相同

(参数类型不同、参数个数不同甚至是参数顺序不同)

重载对返回类型没有要求,可以相同也可以不同,但是不能返回类型来判断他们是否是重载。

例如

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

package HelloWorld;

public class Zuoye {

public static void main(String[] args) {

Zuoye z = new Zuoye();

z.fangfa1();

z.fangfa1("张旭");

}

public void fangfa1() {

System.out.println("方法1");

}

public void fangfa1(String name) {

System.out.println("也是方法1,不过有参数"+ name);

}

}

小结:

1.重载是一个类中多态性的一种表现

2.重载是在一个类中,具有相同名称不同参数列表的方法

3.重载不能根据返回类型的相同或者不同来区分重载函数。

2.重写

1.重写是指在不同类中,将父类的方法在子类中重新写一遍,子类继承了父类原有的方法,但有时又不想继承父类原有一模一样的方法,所以就在返回类型,方法名,参数列表相同的情况下,对方法体进行修改进行重写,这就是重写。但注意的是 子类的访问修饰符不能比父类的更严格(意思就是父类的访问修饰符要更加 严谨,权限更少,父亲严格)

例如

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

package HelloWorld;

public class Father {

public static void main(String[] args) {

Son s = new Son();

s.fangfa();

}

public void fangfa() {

System.out.println("我是爸爸的方法");

}

}

class Son extends Father {

public void fangfa() {

System.out.println("我是儿子的方法");

}

}

返回结果是

小结:

1. 发生在父类和子类关系之间

2. 他们的返回类型,方法名,列表参数相同 方法体不同。

3.子类不能比父类更严格 ,(父亲比儿子严格)。

4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常

private 最严格。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

public : 对所有类可见。使用对象:类、接口、变量、方法

总结重载和重写的区别:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/chengxuzx/article/details/121034510

本文链接:https://my.lmcjl.com/post/8627.html

展开阅读全文

4 评论

留下您的评论.