问题描述
- java中到底为什么要用到抽象类?
-
比如有个类A,把它设置成abstract是为了不让它实例化,只能表示一个抽象的或者不具体的无法实例化的概念,但是就算不在这个A的前面加abstract照样可以实现很多类的继承,那我真的不太理解设置抽象类的意义到底在哪里,请各位不吝赐教!
解决方案
抽象类定义一些有一定关系的类的共同行为,比如一个几何图形类,几何图形包括多种图形,如,正方形,圆形,矩形,三角形等,而每种图形用有各自的面积周长计算公式,所以可以在几何图形类里抽象这些公共方法,而不提供真正方法(也没法提供,所以只能是抽象了)。之后各种图形都可以进行面积周长的比较,总不能重载很多个比较函数,所以这时就可以定义一个比较函数,参数类型是父类,这样这些图形就都可以进行比较了。而在比较函数里,由于多态,对象会调用自己独特的面积周长计算函数。
解决方案二:
本身不允许被实例化,有的方法不好实现,本身实例化没有意义
比如说抽象流,你说怎么实现呢?
但是不同于接口,抽象类可以编写一些代码,有时候虽然做什么不确定,但是做的流程是确定的,这些代码可以先写起来。
解决方案三:
因为抽象类是一种概念,没有对应的实例(即不能定义成对象的实例)
例如定义抽象类车,只是抽取了车的共性,但此抽象类没有实例的车可以对应。这只是一种为了与现实对应的定义方法,你不用抽象关键字,你定义的类就可以实例化。但是实例化后,定义出来的实例没有实用价值。
解决方案四:
比如shape类有一个方法叫getarea
解决方案五:
二十、java的抽象类
时间: 2024-10-29 19:32:28