用abstract关键字来修饰一个类,这个类叫做抽象类。
用abstract来修饰一个方法,该方法叫做抽象方法。
抽象方法:只有方法的声明,没有方法的实现。以分号结束:
比如:public abstract void talk();
含有抽象方法的类必须被声明为抽象类。
抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,该子类仍为抽象类。
不能用abstract修饰变量、代码块、构造器;
不能用abstract修饰私有方法、静态方法、final的方法、final的类。
abstract修饰类: 抽象类
①此类不能实例化
②抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)
③开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作
abstract修饰方法:抽象方法
①抽象方法只有方法的声明,没有方法体
②包含抽象方法的类,一定是抽象类。但抽象类中可以没有抽象方法
③若子类重写了父类中的所有的抽象方法,此子类方可实例化。若子类没有重写父类中的所有的抽象方法,则此子类也是一个抽象类, 需要使用abstract修饰