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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张慈瑞 中级黑马   /  2014-7-10 16:24  /  1012 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个类在实现了两个接口时,正好这两个接口有相同的抽象方法,那么实现的是那个接口的方法?我在看毕老师的代码时发现的,知道的大神给解释一下。

4 个回复

倒序浏览
这样实现相当于一块实现俩,其实意义并不大,就相当于两个usb接口,插了一根有两个usb头的数据线,接口的设计理念是like a的理念,是让实现类具有一个扩展性功能,就像我插上usb线,基本是数据传输的事情,但我传什么数据接口就不管了,这就是like a;一个实现类实现两个接口的同样的抽象方法,其扩展功能肯定是一样的,这样就没什么意义了,不知道这样说你懂不懂?
回复 使用道具 举报
你去看一下视频,毕老师说的是不可以出现这种情况。
回复 使用道具 举报
首先语法上是允许的,可以编译通过并正常运行。但是失去了意义。因为同一个类中不能有两个方法签名(方法名和参数列表)完全相同的方法,你只能写一个方法,那么你这个方法的功能到底该满足哪个接口的要求好呢?满足了A,B的功能就没了;满足了B,A的功能就没了。因此实际上你只实现了一个接口(虽然从语法角度你满足了实现两个接口的要求)。
回复 使用道具 举报
接口中的方法都是抽象的,方法体都没有,所以子类重写方法时你可以认为重写的是其中任意一个的抽象方法,因为都是抽象的,没区别
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马