Java中的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和抽象类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
idea将maven项目改成Spring boot项目的方法步骤
这篇文章主要介绍了idea将maven项目改成Spring boot项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-09-09Java file.delete删除文件失败,Windows磁盘出现无法访问的文件问题
这篇文章主要介绍了Java file.delete删除文件失败,Windows磁盘出现无法访问的文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-06-06
最新评论