抽象类概念
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
在上面例子中, 我们发现, 父类 Animal中的 bark 方法好像并没有什么实际工作, 主要的叫声都是由 Animal的各种子类的bark方法来完成的. 像这种没有实际工作的方法, 我们可以把它设计成一个 抽象方法(abstract method), 包含抽象方法的类我们称为 抽象类(abstract class)。举例如下:
abstract class Animal{
public abstract void bark();
}
class Dog extends Animal{
public void bark(){
System.out.println("汪汪叫!");
}
}
class Cat extends Animal{
public void bark(){
System.out.println("喵喵叫!");
}
}