方法重载,重写,final修饰符
方法重载(两同一不同)
- 同一个类中,方法名相同,形参列表不同
至于返回值类型,访问修饰符与方法重载没有任何关系
可变参数列表
可变参数必须是最后一个参数
带可变参数的方法最后被访问(调用)
数组可以传给可变参数,反之不行
同类型数组与可变参数无法构成方法重载
一个方法只能有一个可变参
方法重写(两同两小一大)
- 方法名 相同,形参列表 相同
- 子类方法 返回值类型 必须比父类方法返回值类型“更小”或相等;
- 子类方法 抛出的异常 比父类方法声明抛出的异常“小”或相等
- 子类方法的 访问权限 比父类大或相等
- 父类中静态方法无法被子类重写
当子类重写了父类的方法后,子类对象将无法访问父类中被重写的方法,但是可以调用(super)
如果父类方法具有private访问权限,该方法对子类是隐藏的,子类无法重写
final修饰符
- final不能修饰构造方法
- final修饰类,该类不允许被继承
- 系统不会对 final修饰的成员变量(包括类变量和实例变量) 隐式的初始化
- final修饰的局部变量在定义时可以不指定初始值,在之后的代码中赋值且只能赋值一次
- final修饰基本类型变量不能对基本类型变量重新赋值,final修饰引用类型变量,final只保证引用变量引用的地址不会改变
- final修饰的成员变量必须显示的指定初始值(只能在 非静态初始化块 或 声明该实例变量 或 构造器 中指定初始值),
- final修饰类变量,(必须且只能在) 静态初始化块中指定初始值 或 声明该变量时指定初始值
不管是类变量还是实例变量还是局部变量,当满足条件:
使用final修饰符
在定义该变量时指定了初始值
该初始值在编译时就被确定下来
则该变量相当于一个直接量
本文来自博客园,作者:左手边五十米,转载请注明原文链接:https://www.cnblogs.com/moomcake/p/11667837.html