一、抽象方法概述

  • 抽象方法:将共性的行为(方法)抽取到父类之后,发现该方法的实现逻辑无法在父类中给出具体明确,该方法就可以定义为抽象方法。
  • 抽象类:如果一个类中出现了抽象方法,则这个类就必须定义为抽象类。

举例解释:猫类中有吃饭、喝水两个方法,狗类中也有吃饭、喝水两个方法,所以可以将这两个方法抽取为一个父类Anmial。但猫吃鱼、狗吃肉,吃饭这个方法无法在父类Anmial中具体明确(到底是定义为吃肉还是吃鱼呢?),所以可以将这个父类Anmial定义为抽象类,该类中的吃饭方法为抽象方法。用abstract来定义该类与方法。

如图:

python 抽象类与普通父类的区别 父类的抽象方法_intellij-idea

二、抽象类的注意事项

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;)
  • 在构造方法结束之前完成赋值

python 抽象类与普通父类的区别 父类的抽象方法_ide_02