抽象类专题一:什么是抽象类

  在Java语言中,类有两种:一种是具体类,另一种是抽象类。具体类可以实例化,抽象类不可以被实例化。

  抽象类仅提供一个类型的部分实现。抽象类可以有实例变量,以及一个或多个构造函数。抽象类可以同时有抽象方法和具体方法。

  一个抽象类不会有实例,这些构造方法不能被客户端调用来创建实例。一个抽象类的构造方法可以被其子类调用,从而是一个抽象类的所有子类都可以有一些共有的实现,而不同的子类可以在此基础上有其自己的实现。

  抽象类和子类的这种关系实际上是模版方法模式的应用。

  先有蛋,后有鸡

  套用“先有鸡,还是先有蛋”的争论,假设蛋代表抽象,而鸡代表具体。蛋决定鸡的性状,鸡是蛋的“实现”,蛋的类型决定了鸡的类型。从这个角度来讲,先有蛋,后有鸡,如图所示。

  Java抽象类与Java接口一样,都用来声明一个新的类型,并且作为一个类型的等级结构的起点。但是Java接口具有比Java抽象类更好的特性,因此,应当优先使用Java接口声明一个超类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值