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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-张辉 中级黑马   /  2013-8-24 15:50  /  5939 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 丿Show╭尛__儍 于 2013-8-27 10:33 编辑

子类继承父类,父类如果是抽象的用super.调用属性也是可以的,但是接口不行.第一次发代码,不知道怎么弄,用QQ截图上去的{:soso_e127:},放在附件里了好像.

另:去android板块答题给不给技术分啊,云流太少了...

5QDSSPC$R3NNW%LK5TVR7LE.jpg (37.37 KB, 下载次数: 357)

5QDSSPC$R3NNW%LK5TVR7LE.jpg

评分

参与人数 1技术分 +1 收起 理由
夜默 + 1

查看全部评分

7 个回复

倒序浏览
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,
子类继承了父类,在子类中想要使用父类中的属性,可以用super.[属性名]来调用,
接口是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
而在接口用,是没有这个方法的,接口不能被实例化,接口中可以定义常量,不能定义变量,接口中属性都会自动用public static final修饰,接口中属性都是全局 静态常量,接口中的常量必须在定义时指定初始值

评分

参与人数 1技术分 +1 收起 理由
夜默 + 1

查看全部评分

回复 使用道具 举报
接口是限定类的制作的,类与接口之间并不是继承关系,而是类实现接口中定义的功能。所以类与接口之间不是继承关系,也就没有子类与父类的概念。而且类实现接口的关键字是implement,类继承类的关键字是extends,所以在接口中使用super关键字会报错。

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1 赞一个!

查看全部评分

回复 使用道具 举报
首先在java所有类中接口和注解是没有继承概念的,原因是它们没有方法实体,定义的方法都是由实现类去具体实现的,所以继承在接口中没有意义.
在子类中可以使用super去访问父类的共性成员,super是指向直接父类间接父类的全部共性成员,不是指向实现的接口,再说了接口中没有具体方法,就算能指向去访问也是没有意义的!所以编译器当然会报错了!

评分

参与人数 1技术分 +1 收起 理由
夜默 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 王广亚 于 2013-8-27 01:15 编辑

第一:如果只看你的题目不看内容的话,“为什么子类实现接口不能用super”这句话是有毛病的;
         题目说到子类,既然是子类那他肯定继承了父类,既然继承了父类为什么不能用super呢,是可以用的
         
第二:从你的内容上来看,你问的应该是“为什么一个类实现接口不能用super”

回答你的问题:
你就记着接口没有构造函数,所以接口就不可以创建对象,而super是指的父类的引用(父类的对象)所以子类实现接口不能用super。
再说super只能用在子类调用父类成员之间,对实现不适用。
对构造函数:
还有就是就算一个类只是实现了接口,那么它默认还是有super语句的,因为任何类都是Object的子类。

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1 很给力!

查看全部评分

回复 使用道具 举报
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
回复 使用道具 举报
super的定义就是指向关键字所在类的父类,用来引用父类中的成员变量或方法,上面代码中Inter是Demo类的父类吗?那是接口,你是实现了接口又不是继承父类,super也有它自己的使用局限的,我想你可能是继承父类和接口的实现这些概念还没搞清楚,建议看书,记忆来得比较深刻
回复 使用道具 举报
一个接口的子接口和实现类的关系
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马