抽象类和抽象方法
抽象类
格式:修饰符 abstract class 类名{}
抽象方法
格式:public abstract 返回值类型 方法名(参数类型 参数名,…);
public abstract void 方法名(参数类型 参数名,…);
抽象方法是没有方法体,也就是具体实现功能,只有功能的声明。只要类中有抽象方法,这个类肯定是抽象类,只要是抽象类,肯定会被继承,如果抽象类不被继承,那么抽象方法没法被实现,所以声明抽象方法就毫无意义。
如果子类继承抽象父类,要去重写父类的抽象方法,如果子类不重写父类的抽象方法,那么子类也要声明成抽象类,不然会报错。
public abstract class Emplary {
// 普通方法
/*public void work(){}*/
// 改进
// 把work声明成抽象方法
public abstract void work();
}
抽象类的特点
(1)抽象类和抽象方法都要被abstract修饰,抽象方法一定在抽象类中
(2)抽象类不能直接创建对象 原因:创建对象后,用对象名调用抽象方法毫无意义
(3)只有重写抽象类中的所有抽象方法后,其子类才能创建对象,否则子类还是一个抽象类
为什么要用抽象方法
抽象父类不断抽象共性的需求,父类可以不定义方法,让后代去实现具体的功能,这样后代类可以根据不同需求实现不同的功能。