Java学习笔记 继承与抽象类:final修饰符

引入

回顾:在继承中,父类的成员可以被子类所覆盖
引入:不希望被子类覆盖的场景
解决方法:final修饰符

1.final类(最终类)

最终类,不可以有子类
不可以被继承
优点:final类通常是一些有固定作用,完成某种标准功能的类,如Java类库中用来实现某些网络功能的类

2.final域

final修饰变量
说明是最终变量,即常量
值一旦给定,在程序执行过程中都不会改变
final成员变量final局部变量都是只读量
static final修饰,若不给定初始值,按默认值初始化
数值为0,boolean型为false,引用型为null
static final域举例
如:Math.PI

3.final方法

final修饰方法
最终方法
功能和内部语句不能被改变,即不能被子类所覆盖
final方法的好处:固定该方法所对应的具体操作,防止子类误对父类关键方法的重定义,保证程序安全性正确性
默认规则:所有被private限定的私有方法及所有包含在final类中的方法,都被缺省地认为final方法

父类中声明为final的成员在子类中可以被继承,但不能被覆盖

class AAA{
    static final double PI = 3.14;
    public final void show(){
        System.out.println("PI="+PI);
    }
}
class BBB extends AAA{
    private int num = 100;
    public void show(){//会报错父类的show()是final方法不能覆盖
        System.out.println("PI="+PI);
    }
}
public class Test {
    public static void main(String[] args) {
        BBB ex = new BBB();
        ex.show();
    }
}

在这里插入图片描述

4.static与final小结

final
final在方法之前,防止该方法被覆盖
final在类之前,表示该类不能被继承
final在变量之前,定义一个常量
static
static在变量或方法之前,表面他们属于类

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201120160305999.png#pic_center
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值