什么情况下会需要用到抽象类
1、在编写某个父类时,发现某个方法的方法体无法给出具体的实现,但是父类有需要声明这个方法以代表事物的特征,那么此时就只能把这个方法声明为抽象方法,一旦某个类包含抽象方法,那么这个类就必须是抽象类
2、在编写某个父类时,可能没有包含抽象方法,但是不希望用户创建这个父类的对象,希望用户创建它的子类对象时,也可以把这个父类声明为抽象类
如何声明抽象类和抽象方法
抽象类的语法格式
1 【其他修饰符】 abstract class 抽象类名{ 2 3 }
抽象方法的语法格式
1 【其他修饰符】 abstract 返回值类型 方法名(【形参列表】);
抽象方法没有方法体
抽象类的特点
1、抽象类不能直接创建对象
2、抽象类就是用来被继承的,子类继承它时,必须重写/实现抽象类的所有抽象方法,否则子类也得是抽象类
3、抽象类也有构造器,给子类调用的
4、如果类中有抽象方法,那么必须是抽象类,但是反过来,抽象类中可以没有抽象方法