黑马程序员技术交流社区

标题: 抽象类和接口有什么用? [打印本页]

作者: hsx500    时间: 2015-5-11 08:47
标题: 抽象类和接口有什么用?
为什么要设计抽象类和接口啊??有什么意义呢?

作者: 想要那片海    时间: 2015-5-11 08:52
抽象类和一般类没有太大区别,只是比一般类多了抽象函数,该怎么进行描述就怎么描述,只不过该事物出现了一些看不懂的东西,这些不确定的部分也是该事物的功能,需要明确出现,但是无法定义内部主体,这时就通过抽象方法来表示。
特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。
接口就是内部方法全部都是抽象的,只是定义一个功能名称,子类根据需要复写自己的功能内容
作者: hsx500    时间: 2015-5-11 09:05
想要那片海 发表于 2015-5-11 08:52
抽象类和一般类没有太大区别,只是比一般类多了抽象函数,该怎么进行描述就怎么描述,只不过该事物出现了一 ...

亲,我问的是为什么要设计他们,不是问他们是什么啊~~
作者: 想要那片海    时间: 2015-5-11 09:07
hsx500 发表于 2015-5-11 09:05
亲,我问的是为什么要设计他们,不是问他们是什么啊~~

把不确定的共性功能抽取出来,这不是避免如果定义多个函数有可能出现的重名情况吗
作者: hsx500    时间: 2015-5-11 09:12
想要那片海 发表于 2015-5-11 09:07
把不确定的共性功能抽取出来,这不是避免如果定义多个函数有可能出现的重名情况吗 ...

为什么把公用性功能抽取出来,就能避免定义多个函数重名呢?
作者: wkz_crystal    时间: 2015-5-11 10:43
呵呵,因为现实需要,解决java中不允许的多继承,增加扩展性,是多态的具体体现!
作者: hsx500    时间: 2015-5-11 10:49
wkz_crystal 发表于 2015-5-11 10:43
呵呵,因为现实需要,解决java中不允许的多继承,增加扩展性,是多态的具体体现! ...

知道了~谢谢
作者: wkz_crystal    时间: 2015-5-11 10:50
hsx500 发表于 2015-5-11 10:49
知道了~谢谢

不用客气,共同交流,共同进步哈!加油!
作者: KK要有光    时间: 2015-5-11 15:30
为了多态的实现。
作者: 杨春雨    时间: 2015-5-11 16:42
面向对象的程序设计三大特点就是封装、继承、多态,而这个抽象类和接口,就是为了有多态这个特性,使程序灵活性更强,在大学老师教的最简单的就是电脑的USB接口既可以插U盘 又可以连接鼠标,这就是一个接口,但是他能灵活的展现多种状态。
作者: 薛慧彬    时间: 2015-5-11 16:47
简单的说就像现实中的各种插口,并不是不能直接把线接起来,而是为了方便。接口就像是先把需要的解决方式写好,你只要按照它去实现就好了,,,,,
作者: 牛仔很忙fire    时间: 2015-5-11 21:15
为了实现 多态
作者: 杨海林    时间: 2015-5-11 21:29
符合面向对象程序设计思想,便于继承,封装和多态。这样更能便于后期的维护
作者: hsx500    时间: 2015-5-12 08:32
杨海林 发表于 2015-5-11 21:29
符合面向对象程序设计思想,便于继承,封装和多态。这样更能便于后期的维护 ...

知道了,多谢多谢~!
作者: !85684009ex    时间: 2015-5-14 09:10
接口是特别的抽象!实现接口必须重写方法!不然报错!继承抽象不是必须重写方法!不过不重写方法!那么继承的类还是抽象类!必须有抽象类的关键字!
我就知道这么多!
作者: hsx500    时间: 2015-5-14 09:11
!85684009ex 发表于 2015-5-14 09:10
接口是特别的抽象!实现接口必须重写方法!不然报错!继承抽象不是必须重写方法!不过不重写方法!那么继承 ...

楼上说的到位了,为了后期维护方便。。
作者: 狙神自傲    时间: 2015-5-14 10:15
继承只能继承一个 但是可以实现很多接口
作者: hzhzhen    时间: 2015-5-14 10:37
接口是一种规范,里面有方法名,但是不提供解决方式。 抽象类严格来说也算是一种规范,里面的方法可以有具体实现,但是抽象方法必须要子类实现。
作者: !85684009ex    时间: 2015-5-14 22:17
hsx500 发表于 2015-5-14 09:11
楼上说的到位了,为了后期维护方便。。

多谢支持!
还有就是接口只能实现一个!不能实现多个!
继承可以继承多个类!至于抽象类好像也是可以不停的被继承!
一个继承了抽象的类!如果不实现!那么它也是抽象的!继承了它的类还是要重写这个类的方法!!如果不重写那么它还是抽象类!
到最后还是要有有一个子类重写父类~以及父类的父类的抽象方法!这样才能实例化!才能使用对象以及其方法!(抽象类不能被实例化)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2