码迷,mamicode.com
首页 > 其他好文 > 详细

方法重写、方法重载、final修饰符

时间:2019-06-06 14:13:03      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:构造器   private   相同   重载   基本类型   无法   局部变量   可变参数   访问权限   

方法重载(两同一不同)

  • 同一个类中,方法名相同,形参列表不同

至于返回值类型,访问修饰符与方法重载没有任何关系

可变参数列表

可变参数必须是最后一个参数
带可变参数的方法最后被访问(调用)
数组可以传给可变参数,反之不行
同类型数组与可变参数无法构成方法重载
一个方法只能有一个可变参

方法重写(两同两小一大)

  • 方法名 相同,形参列表 相同
  • 子类方法 返回值类型 必须比父类方法返回值类型“更小”或相等;
  • 子类方法 抛出的异常 比父类方法声明抛出的异常“小”或相等
  • 子类方法的 访问权限 比父类大或相等
  • 父类中静态方法无法被子类重写

当子类重写了父类的方法后,子类对象将无法访问父类中被重写的方法,但是可以调用(super)

如果父类方法具有private访问权限,该方法对子类是隐藏的,子类无法重写

final修饰符

  • final不能修饰构造方法
  • final修饰类,该类不允许被继承
  • 系统不会对 final修饰的成员变量(包括类变量和实例变量) 隐式的初始化
  • final修饰的局部变量在定义时可以不指定初始值,在之后的代码中赋值且只能赋值一次
  • final修饰基本类型变量不能对基本类型变量重新赋值,final修饰引用类型变量,final只保证引用变量引用的地址不会改变
  • final修饰的成员变量必须显示的指定初始值(只能在 非静态初始化块 或 声明该实例变量 或 构造器 中指定初始值),
  • final修饰类变量,(必须且只能在) 静态初始化块中指定初始值 或 声明该变量时指定初始值

不管是类变量还是实例变量还是局部变量,当满足条件:

使用final修饰符

在定义该变量时指定了初始值

该初始值在编译时就被确定下来

则该变量相当于一个直接量

方法重写、方法重载、final修饰符

标签:构造器   private   相同   重载   基本类型   无法   局部变量   可变参数   访问权限   

原文地址:https://www.cnblogs.com/haiyuexiaozu/p/10984441.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!