zoukankan      html  css  js  c++  java
  • 方法重载,重写,final修饰符

    方法重载(两同一不同)

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

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

    可变参数列表

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

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

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

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

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

    final修饰符

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

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

    使用final修饰符

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

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

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

  • 相关阅读:
    将博客搬至CSDN
    第一章 spring起步
    动态规划-最长非降子序列
    硬币问题-动态规划详解
    哲学家就餐
    java并发编程(十九)障碍器CyclicBarrier
    java并发编程(十八)阻塞队列和阻塞栈
    java并发编程(十七)Executor框架和线程池
    java并发编程(十七)内存操作总结
    java并发编程(十六)happen-before规则
  • 原文地址:https://www.cnblogs.com/moomcake/p/11667837.html
Copyright © 2011-2022 走看看