Java中的final关键字和抽象类详解

 更新时间:2023年07月15日 09:37:03   作者:信橙则灵  
这篇文章主要介绍了Java中的final关键字和抽象类详解,当不希望 类被继承时,可以用final修饰比如不希望子类重写父类时,当不希望某个局部变量被修改时,对参数进行修饰,需要的朋友可以参考下

final关键字

可以修饰类、属性、方法和局部变量【参数】

使用场景

1、当不希望 类被继承时,可以用final修饰。比如不希望子类重写父类时。

2、当不希望子类重写父类的某个方法。注意:此时不能重写但能继承父类此方法使用。

3、当不希望类的某个属性的值被修改,可以使用final修饰。一般这种属性使用全大写命名。

4、当不希望某个局部变量被修改时,对参数进行修饰

使用细节

1、final 修饰的属性一般称之为常量,

2、final 修饰的属性在定义时,必须赋初始值,并且之后不能再修改。

  • 在定义属性的时候,进行赋值。
  • 在构造器中
  • 在代码块中

3、当 final 修饰的属性是静态的,则初始化的位置只能是:

  • 定义时
  • 在静态代码块中,注意不能在构造器中赋值了。

4、final 修饰的类不能继承,但是可以进行实例化

5、如果类不是final类,但是含有final方法,则该方法虽然不能重写,但仍能被继承。

6、一般如果类已经被final修饰了,则内部的方法就没必要使用final了

7、final 和 static 往往搭配对属性进行使用,效率更高,这样不会导致类加载,底层编译器对这种修饰进行了优化处理。

抽象类

当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,这个方法就是抽象方法,此时需将该类用 abstract 来修饰,即抽象类。

一般,抽象类会被继承,在子类中实现父类中不能确定的方法。

抽象类的介绍

1、当使用 abstract 关键字来修饰一个类时,这个类就叫 抽象类

2、用 abstract 关键字来修饰一个方法时,这个方法就是抽象方法。注意:抽象方法是没有方法体的

3、抽象类的价值更多的是设计,是设计者设计好后,让子类继承并实现抽象方法。

4、抽象类,一般考官在问的时候,主要在框架和设计模式使用比较多。

抽象类的使用细节

1、抽象类是不能被实例化的, 但可以使用匿名内部类声明。

2、抽象类不一定要包含抽象方法。

3、一旦包含了抽象方法,则这个类必须声明为抽象类。

4、abstract 只能修饰类和方法,不能修饰属性和其他的。

5、如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类。

在这里插入图片描述

6、抽象方法不能使用private、final、和static来修饰,因为这些关键字的修饰,会影响子类的重写。

模版设计模式

需求:

1、有多个类,完成不同的任务job

2、要求能够得到各自完成任务的时间

到此这篇关于Java中的final关键字和抽象类详解的文章就介绍到这了,更多相关Java的final和抽象类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot服务上实现接口限流的方法

    SpringBoot服务上实现接口限流的方法

    这篇文章主要介绍了SpringBoot服务上实现接口限流的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • idea将maven项目改成Spring boot项目的方法步骤

    idea将maven项目改成Spring boot项目的方法步骤

    这篇文章主要介绍了idea将maven项目改成Spring boot项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • mybatis调用存储过程,带in、out参数问题

    mybatis调用存储过程,带in、out参数问题

    这篇文章主要介绍了mybatis调用存储过程,带in、out参数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Java计时新姿势StopWatch的使用方法详解

    Java计时新姿势StopWatch的使用方法详解

    这篇文章主要给大家介绍了关于Java计时新姿势StopWatch的相关资料,以及java 中使用StopWatch来计算时间差的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Java列出2到100之间所有素数的方法

    Java列出2到100之间所有素数的方法

    这篇文章主要介绍了Java列出2到100之间所有素数的方法,涉及java数值运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • JAVA字符串反转的三种方法

    JAVA字符串反转的三种方法

    这篇文章主要介绍了JAVA字符串反转的三种方法,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-09-09
  • IDEA actiBPM插件安装图文教程

    IDEA actiBPM插件安装图文教程

    这篇文章主要介绍了IDEA actiBPM插件安装教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • java中接口(interface)及使用方法示例

    java中接口(interface)及使用方法示例

    这篇文章主要介绍了java中接口(interface)及使用方法示例,涉及接口定义的简单介绍以及Java语言代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • Java实现按年月打印日历功能【基于Calendar】

    Java实现按年月打印日历功能【基于Calendar】

    这篇文章主要介绍了Java实现按年月打印日历功能,涉及java基于Calendar进行日期运算的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • Java file.delete删除文件失败,Windows磁盘出现无法访问的文件问题

    Java file.delete删除文件失败,Windows磁盘出现无法访问的文件问题

    这篇文章主要介绍了Java file.delete删除文件失败,Windows磁盘出现无法访问的文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06

最新评论