0
点赞
收藏
分享

微信扫一扫

抽象类基本知识

江南北 2022-01-12 阅读 47

抽象定义

例如:当我们声明一个几个图形类:圆、矩形、三角形类等,发现这些类都有共同特征:求面积、求周长、获取图形详细信息。那么这些共同特征应该抽取到一个公共父类中。但是这些方法在父类中又无法给出具体的实现,而是应该交给子类各自具体实现。那么父类在声明这些方法时,就只有方法签名,没有方法体,我们把没有方法体的方法称为抽象方法。Java语法规定,包含抽象方法的类必须是抽象类

  • 一般通过继承关系抽取的父类是多个子类共有的属性和行为,理论上不应该被实例化;(理想化:不能实例化)

  • 一般通过继承关系抽取的父类的行为方法,需要被子类重写时,写完父类后很容易忘记;(理想化:子类没有重写父类的行为方法时,编译报错)

  • 通过继承关系抽取的父类的行为方法,因为需要被子类重写时,所有方法实体比较多余;(理想化:不要写方法实体,交给子类完成,提高开发效率)

  • 抽象方法 : 没有方法体的方法。

  • 抽象类:被abstract所修饰的抽的类。

抽象类的语法格式

【权限修饰符】 abstract class 类名{
    
}
【权限修饰符】 abstract class 类名 extends 父类{
    
}

抽象方法的语法格式

【其他修饰符】 abstract 返回值类型  方法名(【形参列表】);

抽象的使用

继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。

抽象类使用注意事项

关于抽象类的使用,以下为语法上要注意的细节,虽然条目较多,但若理解了抽象的本质,无需死记硬背。

  1. 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。

  2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。

  3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

  4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。

举报

相关推荐

0 条评论