一、抽象方法概述
- 抽象方法:将共性的行为(方法)抽取到父类之后,发现该方法的实现逻辑无法在父类中给出具体明确,该方法就可以定义为抽象方法。
- 抽象类:如果一个类中出现了抽象方法,则这个类就必须定义为抽象类。
举例解释:猫类中有吃饭、喝水两个方法,狗类中也有吃饭、喝水两个方法,所以可以将这两个方法抽取为一个父类Anmial。但猫吃鱼、狗吃肉,吃饭这个方法无法在父类Anmial中具体明确(到底是定义为吃肉还是吃鱼呢?),所以可以将这个父类Anmial定义为抽象类,该类中的吃饭方法为抽象方法。用abstract来定义该类与方法。
如图:
二、抽象类的注意事项
1.抽象类不能创建对象
2.抽象类中有构造方法
3.抽象类的子类必须要重写父类中的所有抽象方法,也可以将子类变成一个抽象类。
4.抽象类中,可以有抽象方法,也可以有非抽象方法。有抽象方法的类一定是抽象类。
三、final关键字
1.final关键字是最终的意思,可以修饰方法、变量、类
2.final修饰的特点:
- 修饰方法:表明该方法是最终方法,不能被重写
- 修饰变量:表明该变量是常量,不能第二次赋值
- 修饰类:表明该类是最终类,不能被继承
(注:final修饰变量时,修饰的若是基本类型,指的是基本类型的数据值不能改变;若是引用类型,指的是引用类型的地址值不能改变,但是地址中的属性值可以发生改变)
(注:常量的命名规范:如果是一个单词,所有字母大写;如果是多个单词,所有字母大写,但是中间需要用_分隔。eg: final int A =10; final int MAX_VALUE = 20;)
3.final修饰成员变量时,初始化时机:
- 在创建的时候直接赋值(eg:final int A = 10;)
- 在构造方法结束之前完成赋值