概述
- 在整个生物圈中,有着许多不同的物种,人,猴子,猫,狗,羊……等等。
- 吃饭和睡觉是生物的共同特点,按照继承的思维可以将其抽象成一个生物类Biology,共同行为是吃eat和睡sleep
- 但实际上每个物种的生活习惯都不相同。例如,吃,人是杂食动物,猴子爱吃香蕉,猫爱吃鱼,狗啃骨头,羊吃草等等。
- 因此,吃东西这一行为根本不能像继承思维那样写成一个具体的方法,因为每种生物吃的东西都不一样。
因此,需要用抽象类来将eat这个行为进行抽象,即它只需要提出有吃东西这个行为,来表达生物都吃东西,但至于具体吃什么和怎么吃,那是继承它的子类描述的事情,它不用管。
特点
- 抽象类和抽象方法必须用abstract关键字修饰
- 语法:
- 抽象类格式: abstract class 类名 {}
- 抽象方法格式:public abstract void eat();
- 抽象类格式: abstract class 类名 {}
- 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
- 抽象类中可以有构造方法,抽象类不能进行实例化,那么要构造方法有什么作用呢?
- 用于子类访问父类数据时的初始化
- 抽象类不能直接实例化,那么,抽象类可以进行间接实例化吗?
- 按照多态的方式,由具体的子类实例
- 语法: