权限修饰符的分类和作用范围
由小到大: private -> 缺省 -> protected -> public
修饰符 | 同一个类 | 同一个包下其他类 | 不用包下的子类 | 不同包下无关类 |
---|---|---|---|---|
private | √ | |||
缺省 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
final的作用
final关键字是最终的意思,可以修饰(方法,变量,类)
- 修饰方法:表示该方法是最终方法,不能被重写
- 修饰变量: 表示该变量第一次赋值后,不能再次被赋值
- 修饰类:表示该类是最终类,不能被继承
final修饰变量注意事项
- final修饰基本数据类型,其数据值不能再改变
- final修饰引用数据类型,变量中存储的地址不能被改变,但是地址执行的对象内容可以改变
抽象类
某个父类知道其所有子类要完成某些功能,但是每个子类完成情况都不一样,父类就只定义该功能的基本要求,具体实现由子类完成,这个类就是一个抽象类,抽象类其实就是一种不完全的设计图
- 有得有失: 得到了抽象方法,失去了创建对象的能力
- 为什么不能创建对象呢? 因为有抽象方法
模板方法模式
把业务中相同的业务逻辑部分写成模板方法,中间部分差异逻辑定义成抽象类,让子类重写。
- 极大提供了代码的复用性
建议使用final修饰,为什么呢?
模板方法是给子类直接使用的,不是让子类重写的,一旦子类重写了模板方法就失效了