抽象类是为了将一系列事务抽象出来,比如人有各种各样的人,那么我们将Person抽象出来作为一个父类,然后派生出子类,代表各种各样的人,而每个人都有名字,子类中都有getName()方法,但是Person类对名字的具体实现一无所知,所以我们将getName()声明为一个抽象方法,这样就可以不用实现这个方法了
public abstract String getName();
同时,getName()所属的方法也需要声明为抽象方法
abstract class Person{
public abstract String getName();
......
}
当然,抽象类也可以拥有普通的成员变量和方法。
抽象类起到的是一种占位的作用,具体的实现交给子类,所以抽象类不能被实例化,比如 new Person("lxb") 就是错误的。
还需要注意一点就是,一个类只能继承一个抽象类,这个很好理解,小明是一个人,小明只能继承Person这个抽象类,而不能同时继承Fish这个抽象类,因为小明只是人,不是鱼。