一,构造方法:
this(…) - 访问本类构造方法
super(…) - 访问父类构造方法
 
二, 继承中构造方法的访问特点(理解)
注意:子类中所有的构造方法默认都会访问父类中无参的构造方法
子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化,
原因在于,每一个子类构造方法的第一条语句默认都是:super()
问题:如果父类中没有无参构造方法,只有带参构造方法,该怎么办呢?
1. 通过使用super关键字去显示的调用父类的带参构造方法
2. 子类通过this去调用本类的其他构造方法,本类其他构造方法再通过super去手动调用父类的带参的构造方法
注意: this(…)super(…) 必须放在构造方法的第一行有效语句,并且二者不能共存
 
三, 方法重写(掌握)
1、方法重写概念:子类出现了和父类中一模一样的方法声明(方法名一样,参数列表也必须一样)
2、方法重写的应用场景:当子类需要父类的功能,而功能主体子类有自己特有内容时
3、Override注解:用来检测当前的方法,是否是重写的方法,起到【校验】的作用
2.7 方法重写的注意事项(掌握)
方法重写的注意事项
1. 私有方法不能被重写(父类私有成员子类是不能继承的)
2. 子类方法访问权限不能更低(public > 默认 > 私有)
3. 静态方法不能被重写,如果子类也有相同的方法,并不是重写的父类的方法
 
四,抽象类的特点(记忆
抽象类和抽象方法必须使用 abstract 关键字修饰
抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
抽象类不能实例化
抽象类可以有构造方法
抽象类的子类
要么重写抽象类中的所有抽象方法
要么是抽象类
 
五,模板设计模式(可以看作是抽象类的一个应用)
把抽象类整体就可以看做成一个模板,模板中不能决定的东西定义成抽象方法 让使用模板的类(继承抽象类
的类)去重写抽象方法实现需求
模板设计模式的优势
模板已经定义了通用结构,使用者只需要关心自己需要实现的功能即可
 
六,final(应用)
fianl关键字的作用
final代表最终的意思,可以修饰成员方法,成员变量,类
final修饰类、方法、变量的效果
fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)
final修饰方法:该方法不能被重写
final修饰变量:表明该变量是一个常量,不能再次赋值
变量是基本类型,不能改变的是值
变量是引用类型,不能改变的是地址值,但地址里面的内容是可以改变的
 
七,代码块
4.1代码块概述 (理解)
在Java中,使用 { } 括起来的代码被称为代码块
4.2代码块分类 (理解)
局部代码块
位置: 方法中定义
作用: 限定变量的生命周期,及早释放,提高内存利用率
构造代码块
位置: 类中方法外定义
特点: 每次构造方法执行的时,都会执行该代码块中的代码,并且在构造方法执行前执行
作用: 将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性
静态代码块
位置: 类中方法外定义
特点: 需要通过static关键字修饰,随着类的加载而加载,并且只执行一次
作用: 在类加载的时候做一些数据初始化的操作
作用: 限定变量的生命周期,及早释放,提高内存利用率