黑马程序员技术交流社区

标题: 抽象类 [打印本页]

作者: 紫幻随影-缪    时间: 2014-6-3 19:36
标题: 抽象类
本帖最后由 紫幻随影-缪 于 2014-6-5 09:40 编辑

我知道抽象类不能被实例化,但是却可以有构造方法,请问都不能被实例化,那么要构造方法有何用?

作者: Lex    时间: 2014-6-3 20:03
抽象类中的构造方法的作用,就是为他的子类提供默认的构造方法的实现。主要应用是他的所有子类都有一个相同功能的构造方法,写在父类中是为了代码复用
就好比人生一样,一个不完整的人生他也是人生呀,即使我和抽象类一样没法为社会做出贡献,干出一番轰轰烈烈的事业,但这并不妨碍我也有期待、梦想和自己的优点啊:)。况且,我的这些优点是可以遗传给儿子的,你敢保证那一代不出现伟人
作者: 紫幻随影-缪    时间: 2014-6-3 20:07
Lex 发表于 2014-6-3 20:03
抽象类中的构造方法的作用,就是为他的子类提供默认的构造方法的实现。主要应用是他的所有子类都有一个相同 ...

你比喻用的挺好的!
作者: sheng6699    时间: 2014-6-3 20:19
Lex 发表于 2014-6-3 20:03
抽象类中的构造方法的作用,就是为他的子类提供默认的构造方法的实现。主要应用是他的所有子类都有一个相同 ...

很好的比喻。。。。。。;P
作者: 少先队员    时间: 2014-6-3 21:05
主要是让你复写抽象类里面的方法, 创建子类对象,覆盖父类方法,写子类特有方法。
作者: 淡淡柠檬茶    时间: 2014-6-3 21:06
Lex 发表于 2014-6-3 20:03
抽象类中的构造方法的作用,就是为他的子类提供默认的构造方法的实现。主要应用是他的所有子类都有一个相同 ...

ls举例好给力,大赞
作者: 王亚亚    时间: 2014-6-3 21:13
楼主可以这样想,抽象类可以被继承,子类中的构造方法中首行默认的有个super();就是默认调用父类的空参构造,如果抽象类中没有构造方法,子类根本不能继承,那不就出错了吗。那抽象类就不能被继承了。
作者: 格子、    时间: 2014-6-3 21:47
二楼的比喻很贴切啊,抽象类就是用之所以有构造函数,就是想告诉它的子类,自己是什么什么情况,它的所有子类在初始化的时候,都会看看它父类是什么情况,怎么初始化的?子类心里有底了,才能放心的去干自己的事啊,就像小时候咱们买东西的时候,都得看看老爹同不同意,同意了咱们才能买啊,要是老爹找不到了拿什么买啊!!!
作者: Ice丶wj    时间: 2014-6-3 21:50
为子类提供构造方法
作者: EDDY_Liang    时间: 2014-6-4 13:52
抽象类其实就是一般类里面多抽象的方法而已,之所以定义抽象是专门为了给子类覆写的,而当抽象类里面全是抽象方法时,其实就是一个inerface了




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