抽象类是具有已声明但未定义的一个或多个方法的类。抽象类不能有实例。此类用于继承以利用多态性。要声明一个类是抽象的,请在类定义abstract中的class关键字前面使用关键字。
没有定义的抽象类中的方法称为抽象方法。抽象方法的声明以分号结尾,您可以使用abstract关键字指定该方法以标识它。该实现留给子类。
package org.nhooo.example.fundamental;
public abstract class Animal {
private String species;
public Animal(String species) {
this.species = species;
}
public abstract void makeASound();
public String getSpecies() {
return species;
}
public static void main(String[] args) {
Animal pig = new Pig("Warthog");
pig.makeASound();
}
}Pig 类扩展了 Animal 类。因为 Animal 类包含一个抽象方法 makeASound () ,Pig 类必须实现这个方法,否则 Pig 也将成为一个抽象类。
package org.nhooo.example.fundamental;
public class Pig extends Animal {
public Pig(String species) {
super(species);
}
@Override
public void makeASound() {
System.out.println("oink oink");
}
}