抽象类

238 阅读3分钟

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战

final 的作用 final 关键字是最终的意思,可以修饰(方法,变量,类)

修饰方法:表明该方法是最终方法,不能被重写。

修饰变量:表示该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)。

修饰类:表明该类是最终类,不能被继承。

final 修饰变量的注意:

final 修饰的变量是基本类型:那么变量存储的数据值不能发生变化。

final 修饰的变量是引用类型:那么变量存储的地址值不能发生变化,但是地址指向的对象内容是可以发生变化的。

常量:

常量使用了 public static final 修饰的成员变量, 必须有初始化值,而且执行的过程中其值不能被改变。

常量的作用和好处:可以用于做系统的配置信息,方便程序的维护,同时也能提高可读性。

常量的执行原理:

在编译阶段会进行 "宏替换",把使用常量的地方全部替换成真实的字面量。

这样做的好处是让使用常量的程序的执行性能与直接使用字面量是一样的。

枚举的概述:

枚举是java中的一种特殊类型

枚举的概述:

枚举是Java中的一种特殊类型

枚举的作用:是为了做信息的标志和信息的分类。

image.png

image.png

image.png

抽象类

某个父类知道其所有子类要完成某功能,但是每个子类完成情况都不一样,父类就只定义该功能的基本要求,具体实现由子类完成,这个类就可以是一个抽象类,抽象类其实就是一种不完全的设计图。

image.png

image.png

1.抽象类的作用是什么样的?什么时候定义抽象类? 可以被子类继承,充当模板的,同时也可以提高代码复用 如果父类知道子类要完成某个功能,实现要交给子类时。

  1. 抽象方法是什么样的? 只有方法签名,没有方法体,使用了abstract修饰。

3.继承抽象类有哪些要注意? 一个类如果继承了抽象类,那么这个类必须重写完抽象类的全部抽象方法。 否则这个类也必须定义成抽象类。

抽象类特征:

有得有失:得到了抽象方法,失去了创建对象的能力。

抽象类为什么不能创建对象?

类有的成员(成员变量、方法、构造器)抽象类都具备。

抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。

一个类继承了抽象类必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。

不能用abstract修饰变量,代码块,构造器。

final 和 abstract 是什么关系?

1.互斥关系

2.abstract定义的抽象类作为模板 让子类继承,final定义的类不能被继承。

3.抽象 方法 定义通用功能让子类重写,final定义的方法 子类不能重写。