抽象类是具有已声明但未定义的一个或多个方法的类。抽象类不能有实例。此类用于继承以利用多态性。要声明一个类是抽象的,请在类定义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"); } }