qq_23908539
2015-08-19 15:28
采纳率: 87.5%
浏览 3.5k
已采纳

java中到底为什么要用到抽象类?

比如有个类A,把它设置成abstract是为了不让它实例化,只能表示一个抽象的或者不具体的无法实例化的概念,但是就算不在这个A的前面加abstract照样可以实现很多类的继承,那我真的不太理解设置抽象类的意义到底在哪里,请各位不吝赐教!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • havedream_one 2015-08-19 23:50
    已采纳

    抽象类定义一些有一定关系的类的共同行为,比如一个几何图形类,几何图形包括多种图形,如,正方形,圆形,矩形,三角形等,而每种图形用有各自的面积周长计算公式,所以可以在几何图形类里抽象这些公共方法,而不提供真正方法(也没法提供,所以只能是抽象了)。之后各种图形都可以进行面积周长的比较,总不能重载很多个比较函数,所以这时就可以定义一个比较函数,参数类型是父类,这样这些图形就都可以进行比较了。而在比较函数里,由于多态,对象会调用自己独特的面积周长计算函数。

    点赞 打赏 评论
  • devmiao 2015-08-19 15:40

    本身不允许被实例化,有的方法不好实现,本身实例化没有意义

    比如说抽象流,你说怎么实现呢?

    但是不同于接口,抽象类可以编写一些代码,有时候虽然做什么不确定,但是做的流程是确定的,这些代码可以先写起来。

    点赞 打赏 评论
  • zhrubin 2015-08-19 15:52

    比如shape类有一个方法叫getarea

    点赞 打赏 评论
  • 91program 2015-08-20 00:15

    因为抽象类是一种概念,没有对应的实例(即不能定义成对象的实例)

    例如定义抽象类车,只是抽取了车的共性,但此抽象类没有实例的车可以对应。这只是一种为了与现实对应的定义方法,你不用抽象关键字,你定义的类就可以实例化。但是实例化后,定义出来的实例没有实用价值。

    点赞 打赏 评论

相关推荐 更多相似问题