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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我要淡定。 中级黑马   /  2014-9-1 08:35  /  2000 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果多实现时,两个方法的方法名一致,但返回值类型不一致是不是就会报错。

14 个回复

倒序浏览
恰恰相反,java中只能单继承,不能多继承。可以实现多个接口,但是有一点要注意,实现接口的时候必须重写鞋扣中的函数,函数的方法的名字、返回值类型、参数的个数及类型必须与接口中的完全一致。
回复 使用道具 举报
隔夜修书 发表于 2014-9-1 09:08
恰恰相反,java中只能单继承,不能多继承。可以实现多个接口,但是有一点要注意,实现接口的时候必须重写鞋 ...

刚才打反了,明白了,谢谢
回复 使用道具 举报
我要淡定。 发表于 2014-9-1 09:36
刚才打反了,明白了,谢谢

加油:handshake
回复 使用道具 举报
确实会报错,如果你的类不是abstract的,则编译时报错,会提示你没有覆盖抽象方法,自己试着写一下就知道了。

当用抽象类来实现接口时,不是一定要重写接口中的抽象方法的,但是能够实际创建对象,即有构建函数的类必须覆写抽象方法。

只有当函数的修饰符,返回值声明,函数名,参数类型及其顺序完全一样时,两个函数才被认为是“一致”的。否则就是函数重载——两个是函数名一致,但是不一样的函数,各是各。

在多实现时,如果被实现的两个接口各有一个同名的抽象方法,并且这两个方法如果“完全一致”, 那么实现这两个接口的类只需要覆写一个抽象方法,因为是同一个。
而如果这两个抽象方法返回值声明不一致,那么必须两个都要覆写,因为这两个抽象方法是不一样的。
回复 使用道具 举报
学习学习
回复 使用道具 举报
我是来学习的{:2_31:}
回复 使用道具 举报
如果能多继承,加入两个父类有相同的方法,你调用会调哪一个呢?这明显不合理
回复 使用道具 举报
说反了吧,只能单继承,能多实现吧,楼上的解释很好啊
回复 使用道具 举报
bullfrog 发表于 2014-9-1 09:54
确实会报错,如果你的类不是abstract的,则编译时报错,会提示你没有覆盖抽象方法,自己试着写一下就知道了 ...

实现的两个接口不能有同名但是返回值不一样的函数吧?
回复 使用道具 举报
java 单继承 多实现
回复 使用道具 举报
肯定会报错。要是能多继承会存在不安全因素。
回复 使用道具 举报
本帖最后由 张周飞 于 2014-9-4 09:36 编辑

确实是继承只能单继承,接口可以实现多个接口
通过内部类  可以实现 “多继承”
比如:自己的外部类继承了A类,在A类定义一个内部【可以用的外部类的所有东西】>>>继承B类
但是有一个小缺陷:虽然【间接的实现了多继承】,但是破坏了类的整体设计[ 类组成:属性和方法[多个内部类],相当于打破了类的设计,加深了复杂性!!!
{:3_57:}..............................默默无闻的我 ,出现下 混个熟脸
回复 使用道具 举报
学习学习默默路过
回复 使用道具 举报
学习了...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马