1、当多个类中出现相同功能,但是功能主体不同。
这时可以进行向上抽取,这时只抽取功能定义,补抽取功能主体
abstract 抽象,笼统,模糊,不具体的,看不懂的
抽象类的特点:
1、抽象方法一定在抽象类中,
2、抽象方法和抽象类必须被abstract关键字修饰,
3、抽象类不可以用new创建对象,因为调用抽象方法没意义。
4、抽象类中的方法要被使用,必须由子类覆写其所有的抽象方法后,建立子类对象,才可被调用。
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
抽象类与一般类没有太大的不同。
该如何描述事物就如何描述事物,只不过,该事物出现了一些看不懂的东西,这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义函数主体。这时需要通过抽象方法来表示。
*抽象类比一般类多了抽象方法,就是在类中可以定义抽象方法,当然,也可以在抽象类中不定义抽象方法,这时这个抽象类的作用就是不让该类实例化(建立对象)
*抽象类不可以实例化
class Student
{
abstract void study();
}
class BaseStudent extends Student
{
void study()
{
System.out.println("base study");
}
}
class AdvStudent extends Student
{
void study()
{
System.out.println("adv study");
}
}