A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 紫幻随影-缪 中级黑马   /  2014-6-3 19:36  /  1177 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 紫幻随影-缪 于 2014-6-5 09:40 编辑

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

10 个回复

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

点评

赞赞赞  发表于 2014-6-3 20:21

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
Lex 发表于 2014-6-3 20:03
抽象类中的构造方法的作用,就是为他的子类提供默认的构造方法的实现。主要应用是他的所有子类都有一个相同 ...

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

很好的比喻。。。。。。;P
回复 使用道具 举报
主要是让你复写抽象类里面的方法, 创建子类对象,覆盖父类方法,写子类特有方法。
回复 使用道具 举报
Lex 发表于 2014-6-3 20:03
抽象类中的构造方法的作用,就是为他的子类提供默认的构造方法的实现。主要应用是他的所有子类都有一个相同 ...

ls举例好给力,大赞
回复 使用道具 举报
楼主可以这样想,抽象类可以被继承,子类中的构造方法中首行默认的有个super();就是默认调用父类的空参构造,如果抽象类中没有构造方法,子类根本不能继承,那不就出错了吗。那抽象类就不能被继承了。
回复 使用道具 举报
二楼的比喻很贴切啊,抽象类就是用之所以有构造函数,就是想告诉它的子类,自己是什么什么情况,它的所有子类在初始化的时候,都会看看它父类是什么情况,怎么初始化的?子类心里有底了,才能放心的去干自己的事啊,就像小时候咱们买东西的时候,都得看看老爹同不同意,同意了咱们才能买啊,要是老爹找不到了拿什么买啊!!!
回复 使用道具 举报
为子类提供构造方法
回复 使用道具 举报
抽象类其实就是一般类里面多抽象的方法而已,之所以定义抽象是专门为了给子类覆写的,而当抽象类里面全是抽象方法时,其实就是一个inerface了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马