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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© AnrryHo 中级黑马   /  2016-4-22 22:56  /  5694 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么接口没有构造函数

点评

点评就是评分吗  发表于 2016-4-22 23:24

评分

参与人数 1黑马币 +10 收起 理由
Unknown_Explore + 10 非常好的问题

查看全部评分

12 个回复

倒序浏览
1,因为接口不能实例化,所以不用构造函数
回复 使用道具 举报 0 1
2,因为接口中的方法都是抽象方法,没有方法体,这样就不能执行构造函数的功能,所以没有构造函数
3,如果有抽象的构造方法,那实现它的子类没法重写啊,不能让子类初始化父类啊
回复 使用道具 举报
东方乔恩 发表于 2016-4-22 23:00
1,因为接口不能实例化,所以不用构造函数

那为什么抽象类也不能实例化,为什么它就有构造函数呢?
回复 使用道具 举报
东方乔恩 发表于 2016-4-22 23:03
2,因为接口中的方法都是抽象方法,没有方法体,这样就不能执行构造函数的功能,所以没有构造函数
3,如果有抽象 ...

还是老问题,你这么说,那抽象类怎么解释。
回复 使用道具 举报
Unknown_Explore 发表于 2016-4-22 23:08
还是老问题,你这么说,那抽象类怎么解释。

我的第二点可以回答你,抽象类中的构造方法可以不是抽象的,有方法体,能完成初始化,而接口中的方法都是抽象的,没有方法体,没法进行初始化.
回复 使用道具 举报
本帖最后由 heimoshui 于 2016-4-22 23:43 编辑

抽象类不能创建对象,但有构造方法,作用是让子类初始化时,对抽象类的数据进行初始化,
原因子类初始化前,必须先将父类初始化,因为子类初始化有可能要用到父类的数据。

接口中的所有方法都是抽象的,没有方法实体,成员变量也都是常量,
方法在方法区中,常量在常量池中,
而对象是在堆内存中的,所以接口跟对象没有半毛钱的关系,
回复 使用道具 举报
johnli 中级黑马 2016-4-22 23:28:19
8#
楼上回复不错,共同加油
回复 使用道具 举报
事实上事实上事实上事实上事实上事实上
回复 使用道具 举报
Unknown_Explore 发表于 2016-4-22 23:08
还是老问题,你这么说,那抽象类怎么解释。

抽象类的子类需要通过抽象类的构造方法来创建对象丫,而接口是直接通过其它类来实现的,接口中定义构造方法没意义,它所有的方法都是抽象的,没有方法实体,成员变量也都是常量
回复 使用道具 举报
接口是功能的集合,并且只是功能的声明,没有功能的主体。而构造函数其实就是创建一个对象,对象是类的实例。所以接口没有构造函数
回复 使用道具 举报
东方乔恩 发表于 2016-4-22 23:00
1,因为接口不能实例化,所以不用构造函数

这是什么逻辑?抽象类也不能实例化,但是它就有构造器……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马