1. 定义
抽象就是从多个事物中将共性的、本质的内容抽取出来。
2. 抽象方法的由来
当多个类中出现相同功能,但是功能主体不同。
这时可以进行向上抽取。
这时只抽取功能定义,而不抽取功能主体。
3. 特点
- 抽象方法必须存放在抽象类中
- 抽象方法和抽象类都必须被abstract关键字修饰
abstract class Student
{
abstract void study();
}
- 抽象类不可以用new创建对象,因为调用抽象方法没意义
- 抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用;如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类
abstract 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");
}
}
class AbstractDemo
{
public static void main(String[] args)
{
new BaseStudent().study();
}
}
输出结果是:
Base study
4. 总结
抽象类和一般类没有太大的不同。该如何描述事物,就如何描述事物。
只不过,当事物出现了一些看不懂的东西,这些不确定的部分,也是该事物的功能,需要明确出现。但又无法定义主体时,只能通过抽象方法来表示。
(1)抽象类比一般类多了个抽象函数。就是在类中可以定义抽象方法。
(2)抽象类不可以实例化。
(3)抽象类中可以不定义抽象方法。