final修饰符、多态、方法重写override

final修饰符

最终的,终态的,无法改变的
在继承关系中,有时候父类中的功能方法不行让子类进行覆盖式重写,必须提供一个关键字:final

注意: 父类中并不是所有的功能都必须使用final修饰,某些功能方法需要用final修饰确保功能的安全性

常量的分类:
字面值常量:“hello”,10,13.1,true,‘A’,‘0’,‘a’
自定义常量:public final int num = 10;

final使用中的注意事项:

  • final可以修饰基本数据类型的变量,当前该变量的值不能被改变
  • final可以修饰引用数据类型,当前该类型对象的地址值不能被改变

final修饰变量的初始化时机:

  • 变量只能被初始化一次
  • 当前变量只是定义了,在构造方法执行之前必须初始化

多态

在同一时刻体现出事物的不同状态

多态的前提条件:

  • 必须有继承关系
    如果没有继承关系,无意义;
  • 必须有方法重写
    在继承关系中父类比较抽象;
  • 必须父类引用指向子类对象(向上转型)
    格式:父类名 对象名 = new 子类名();

在多态中的成员访问特点:
成员变量: 编译看左边,运行看左边
构造方法:在多态中,父类对象的创建通过new子类名(),优先让full进行数据初始化
成员方法:编译看左,运行看右边(存在方法重写)
静态的成员方法:编译看左,运行看左;静态成员方法算不上方法重写,因为静态跟类有关

多态的好处:

  • 提高了程序的维护性(由继承关系保证)
  • 提高了代码的扩展性(由多态的保证)

多态的弊端: 多态中无法直接访问子类的特有功能
如何解决? 必须在多态的第三个前提条件下:

  • 子类new子类对象(虽然可以,但是从内存角度考虑,比较消耗内存空间)
  • 将父类引用强制转换为子类对象(向下转型)

方法重写

override
子类继承父类,出现了和父类中一模一样的方法声明
特点: 在开发过程中,可能需要对父类当前这个方法进行扩展,需要重写父类中的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值