
我们知道,在Java中,一切物质均由类来描绘。有这样一种类,它不是用来描绘具体事物的,它就是抽象类。
我们通常用抽象类来表示难以被具体描述的事物,比如图形、天气等等抽象的事物。因此,抽象类不可以被实例化。
抽象类最大的特点就是它有抽象方法,换句话说:若一个类当中有抽象方法,这个类一定是抽象类。
使用abstract修饰一个类,这个类就是抽象类。
public abstract class Shape {
public abstract void method1(); //抽象方法没有具体的实现
}
public class Circle extends Shape { //普通类继承抽象类需要重写其抽象方法
@Override
public void method1() {
//...
}
}注意:
普通的子类实例化的时候调用的成员方法或变量可能是父类的,但是编译器不会告诉你,自己也很难发现。因此,为了预防错误把父类改成抽象类,这样误调父类的成员时编译器就会报错了。
完