本文已参与「新人创作礼」活动,一起开启掘金创作之路。
关键字:final
-
关键字:final
-
在java中声明类、属性和方法时,可使用关键字final来修饰,表示最终
- final修饰类不能被继承。提高安全性,提高程序的可读性
- final修饰方法不能被子类重写
- final修饰变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次
- final修饰类不能被继承。提高安全性,提高程序的可读性
-
抽象类(abstract class)
-
抽象类(abstract class)
- 随着继承层次中一个个新的子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。
-
相关概念
- 用abstract关键字来修饰一个类时,这个类叫做抽象类
-
用abstract来修饰一个方法时,该方法叫做抽象方法
- 抽象方法:只有方法的声明,没有方法的实现,以分号结束:abstract int abstractMethod(int a);
- 抽象方法:只有方法的声明,没有方法的实现,以分号结束:abstract int abstractMethod(int a);
- 含有抽象方法 的类必须被声明为抽象类
- 抽象类不能被实例化。抽象类是用来作为父类被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类
- 不能用abstract修饰属性、私有方法、构造器、静态方法、final的方法
- 总结:只要类中有一个抽象方法,那么这个就必须是抽象类
-
思考
-
为什么抽象类不可以使用final关键字声明?
- 答:抽象类不能实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。final修饰的类是最终的类,不能被继承
-
一个抽象类中可以定义构造器吗?
- 答:抽象类可以有构造方法,但是不能直接创建抽象类的实例而已,即new Xxx()是非法的
-
-
练习
- 三个类:父类是工人Employee,两个子类分别是管理者Manager、下属CommonEmployee
- 三个类:父类是工人Employee,两个子类分别是管理者Manager、下属CommonEmployee
- 随着继承层次中一个个新的子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。