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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

18947236389

初级黑马

  • 黑马币:19

  • 帖子:5

  • 精华:0

© 18947236389 初级黑马   /  2015-11-26 22:24  /  3618 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
接口和抽象类需要实现或者继承才能用,抽象类有构造方法,是为了继承后给子类初始化用;接口没有构造方法,难道接口实现的子接口不需要初始化吗?

最佳答案

查看完整内容

一句话,子接口默认继承Object,super默认调用Object的构造方法. 一句话能懂得东西,没比要啰嗦一大堆去解释,对楼主有用请加币

18 个回复

倒序浏览
本帖最后由 许鹏飞 于 2015-11-28 16:12 编辑

一句话,子接口默认继承Object,super默认调用Object的构造方法.

一句话能懂得东西,没比要啰嗦一大堆去解释,对楼主有用请加币
回复 使用道具 举报
抽象类中可以有非抽象方法,而接口中不允许有非抽象方法。构造方法的作用是初始化成员变量或者传递参数。既然接口中的方法都没有方法体,那么构造方法的存在没有意义。也可以这样说。你不能new 一个接口出来

点评

JDK新版本里,接口里的方法可以不抽象  发表于 2015-11-28 16:08
回复 使用道具 举报
不需要构造方法
回复 使用道具 举报
没有意义啊,多余
回复 使用道具 举报
不太好说,给你讲个例子看看能不能这么理解:小狗 与 大狗在面向对象里面属于继承,所以要想有小狗这个对象,前提是大狗也必须是一个对象。说到构造函数,多态里面有很好的体现:就是子类可以调用父类的某个方法,也可以调用自己的相同的方法。接口就好比武功秘籍,比如我会如来神掌什么的,但是如来神掌就不需要是一个对象,练会(实现)就好
回复 使用道具 举报
接口不能实例化干嘛还要构造呢 不用构造干嘛还用初始化???
回复 使用道具 举报
ckdckd 中级黑马 2015-11-27 17:06:35
8#
接口只能继承接口
回复 使用道具 举报
接口中的函数都是抽象函数,实现这个接口的类,必须全部复写这个接口的函数,由于接口中的抽象函数是没有方法体的,假设可以new对象,那么再调用方法的时候是没有任何价值的,实现这个接口的类在创建对象的时候,调用方法的时候就会将其复写。
其次建议楼主熟悉下子类实例化过程,更加深入的了解下期中的过程是怎么发生的,包括静态成员变量,静态代码块super(),构造代码块,成员变量初始化的发生顺序等
回复 使用道具 举报
接口中只有抽象的方法,既没有实现的空方法,需要实现类来覆盖才能使用,接口中也没有成员变量,抽象方法也没有值需要传入,不需要参数的初始化,实现这个接口的类有自己的构造函数,可以完成对自己类中参数的初始化,接口中的抽象函数使用的是实现类的参数,故不用构造函数。
回复 使用道具 举报
我的理解是这样的:
回复 使用道具 举报
我的理解是这样子的:构造方法的用处:初始化实例成员变量和能够让类创建对象,而接口中的成员变量都是静态和final的,它必须赋初值,方法的作用是能对成员进行操作,抽象接口之所以定义,是因为应用程序要提供的必须拥有的外部功能,它是建立在实体类的基础之上的,而抽象类可以有自己特有属性
回复 使用道具 举报
接口中的成员变量 默认为public static fluid 变量名
方法为抽象法
回复 使用道具 举报
接口的存在只是为了提供规则的,实现他的子接口只是按照他提供的规则在运行,子接口是通过他来继承父类的,说通俗点就是,接口只是子接口的干爹,与他没有任何的血缘关系,而且,接口是不能被实力化的,
回复 使用道具 举报
接口只是有方法声明,没有方法实体,初始化个毛啊?
回复 使用道具 举报
许鹏飞 发表于 2015-11-28 16:06
一句话,子接口默认继承Object,super默认调用Object的构造方法.

一句话能懂得东西,没比要啰嗦一大堆去解释, ...

关键所在
回复 使用道具 举报
接口中的方法都是抽象的,而抽象类则不一定是抽象的了
回复 使用道具 举报
接口和接口是继承关系,不是实现
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马