首页 技术 正文
技术 2022年11月16日
0 收藏 813 点赞 3,385 浏览 1331 个字

在java中,重载与重写都是多态的体现。重载(Overload)体现的是编译时多态,而重写(Override)体现了运行时多态。

重载(Overload):

定义:在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者参数顺序不同)则被视为重载。

需要说明一点的是,重载对返回类型没有要求,返回类型可以相同也可以不同,但不能通过返回类型是否相同来判断重载。

一个栗子:

public class Wine {
public static void main(String[] args) {
Wine wine = new Wine();
wine.drink();
wine.drink("五粮液");
}public void drink(){
System.out.println("喝的是酒...");
}public void drink(String name){
System.out.println("喝的是:"+name);
}
}

控制台输出:

喝的是酒...
喝的是:五粮液

总结:

1)重载(Overload)是一个类中多态的体现;

2)重载要求同名方法的参数列表不同(参数类型、个数、顺序);

3)重载方法返回值类型可以相同可以不同,不能以返回类型判别是否是重载方法。

重写(Override):

定义:子类把父类中已有的方法重新定义一遍。

说明:子类继承了父类原有的方法,但有时子类并不想原封不动的使用父类中的某些方法。所以在方法名、参数列表,返回类型 都相同的情况下,对方法体进行修改或重写。需要注意的是,子类函数的访问修饰符权限不能低于父类的。

一个栗子:

public class Wine {
public static void main(String[] args) {
WLY wine = new WLY();
wine.drink();
}public void drink(){
System.out.println("喝的是酒...");
}}public class WLY extends Wine{
public void drink(){
System.out.println("喝的是五粮液");
}
}

控制台输出:

喝的是五粮液

总结:

1)重写发生在拥有继承关系的父类与子类之间;

2)方法名、参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同;

3)子类中重写方法的访问修饰符权限要大于父类中被重写的方法(public–>protected–>default–>private);

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

重载与重写的区别?

方法的重载与重写都是java中实现多态的体现。区别在于前者实现的是编译时多态,而后者实现的是运行时多态。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型、个数,顺序)则视为重载;重写发生在子类与父类之间,重写要求子类重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类重写更好访问,不能比父类被重写方法声明更多的异常(里氏替换原则)。重载对返回类型没有特殊的要求,不能根据返回类型来区别。

参考:https://blog.csdn.net/wintershii/article/details/80558739

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,987
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,503
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,347
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,130
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,765
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,842