重载重写
来源:互联网 发布:深圳电子产品出口数据 编辑:程序博客网 时间:2024/04/30 04:09
OverLoad 与 Override
方法的重载:同类中,方法名相同但参数列表不同。【参数列表:包括参数的类型及参数的个数】
方法的重写:发生在具有继承关系的子类中,子类覆盖父类的方法,是多态性的一种表现。【参数列表:必须与父类的方法一致】
1.修饰符:
方法重载时,发生在同一个类中,故方法的重载与修饰符无关。
方法重写时,发生在子类中,子类中重写的方法的修饰符只能比父类更大不能更小。否则编译不通过。
注意:如果父类的方法修饰符为 private ,那么就相当于子类新建了一个与父类同名的方法,但该方法并不是重写的,而是子类新建的方法。
2.返回值
方法重载时,发生在同一个类中,故方法的重载与返回值无关。
方法重写时,发生在子类中,子类重写的方法的返回值一定要与父类一致。否则编译不通过。
3.参数列表
方法重载时,方法的参数列表一定不同。包括参数的个数,参数的类型。
方法重写时,参数列表一定相同。
4.异常情况
方法重载时,与异常无关。
方法重写时,子类方法异常只能抛出比父类异常更小的异常或父类异常的子异常。否则编译不通过。
小结
方法发生重载时只与方法名及参数列表相关。
方法重写时,方法的返回值及方法名必须一致,方法的修饰符只能更大不能更小,异常只能比父类更小不能更大。
代码例子:
public class Test5 {public void test1(int a,String b){ System.out.println("test1");}public void test1(String b,int a){ System.out.println("test1 overload");}protected void test1() throws RuntimeException{ System.out.println("test1 overload 1");}//重载与返回值无关// public int test1(){// System.out.println("test1");// return 0;// }}class TestSub extends Test5{ //重写时,子类中只能抛出比父类更小的异常或父类异常的子异常 //重写时,子类方法的修饰符只能比父类大或与父类相同 public void test1() throws ArrayIndexOutOfBoundsException{ System.out.println("sub test1"); }}
0 0
- 重载,重写
- 重写、重载
- 重载 重写
- 重写重载
- 重载 & 重写
- 重载 重写
- 重载重写
- 重写,重载
- 重写&重载
- 重写?重载?
- 重载重写
- 重写重载
- 重载 重写
- 重载重写
- 关于重载和重写
- 重载 重写 隐藏
- Java重写与重载
- 重载 重写 覆盖
- [android基础]《疯狂android讲义》重点整理(2)
- 深入理解Java内存模型(一)——基础
- 网管的自我修养-其他
- uva 11991Easy Problem from Rujia Liu?
- find 命令 -- linux
- 重载重写
- 安卓修改上层UI界面默认显示为竖屏显示(基于tiny4412开发板)
- 机器学习笔记 监督学习算法小结(一)
- Chapter_2 算法分析:秦九韶算法
- android bitmap 缓存 处理
- 网管的自我修养-外设相关
- 企业号认证接口
- logstash 时间处理
- BZOJ 1098: [POI2007]办公楼biu 补图联通块个数,链表优化