14 抽象
2020-02-13 本文已影响0人
ca8519be679b
抽象
概念:父类不用一个明确的方法实现,就是抽象的方法
1如上图,图形有3个子类,对于计算面积,每个有不同的方法,但是对于父类暂时没有一个比较明确的方法
抽象类和抽象方法
2我们如上定义动物类,这里我们定义抽象方法,参数不写,因为不确定,{}也不加,而且是分号结束,有关键字abstract,同时,使用了抽象方法的类必须是抽象类,class前要加abstract.不需要抽象的方法可以按之前一样正常写方法
抽象类的使用
抽象类不能直接new创建实例,而是必须用子类继承后,用子类实例new,子类必须覆盖所有父类的抽象方法(子类对应方法没有abstract)
3 4如上,我们定义Animal类,子类Cat,在对应我们定义的抽象类后,IDE都会提示我们要确定@Override的写方法eat
5对于IDE我们还有快速实现方法,当写子类继承抽象父类后,ALT+ENTER,有如上提示,选第一项
6在弹窗后选择OK,即可实现定义一个需要复写父类的方法提示如下
7这里总结下抽象的几个注意点:
抽象类不能实例化,抽象类可以有构造方法,供子类使用成员变量,抽象类不一定包括抽象方法,抽象类的子类必须复写所有父类的抽象方法,否则编译无法通过
抽象类的子类也可以是一个抽象类,所以仍然需要非抽象类做子类才能实例