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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mingtianrsm 中级黑马   /  2014-10-3 18:45  /  1758 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在学习继承时,学习了接口的实现,其中一个细节非常容易忽略。接口与接口之间是通过继承extends实现的,而且可以多继承。

13 个回复

倒序浏览
哥们儿,是不是搞错了。

类与类之间才是继承关系,java里可以说支持多继承,但是仅仅在接口以多实现的方式体现的

接口与接口之间是实现关系,并且可以多实现。

点评

接口见是继承关系呢,而且支持多继承。类与接口间是实现关系,如果A实现了多个接口,称之为多实现。  发表于 2014-10-8 00:29
回复 使用道具 举报
白金角斗士 发表于 2014-10-3 20:33
哥们儿,是不是搞错了。

类与类之间才是继承关系,java里可以说支持多继承,但是仅仅在接口以多实现的方式 ...

这个35天那个视频说过,接口是通过继承。而且是多继承。
回复 使用道具 举报
我刚看了视频,但是接口之间是继承关系还是实现关系我忘了!:funk:
回复 使用道具 举报
inception 来自手机 中级黑马 2014-10-4 13:43:16
报纸
白金角斗士 发表于 2014-10-3 20:33
哥们儿,是不是搞错了。

类与类之间才是继承关系,java里可以说支持多继承,但是仅仅在接口以多实现的方式 ...

接口A,接口B,

你写程序是写   A   extends  B
还是写  A  implements   B

自己想想
回复 使用道具 举报
必须是 A   extends  B
回复 使用道具 举报
一个接口可以继承另一个接口,一个普通类可以实现多个接口,而一个抽象类可以实现一个接口。
可以参考一下如下的代码:
  1. interface A {
  2.         void mA();
  3. }

  4. interface B extends A {
  5.         void mB();

  6. }

  7. class Tmp implements B {

  8.         @Override
  9.         public void mA() {
  10.                 // TODO Auto-generated method stub
  11.                 System.out.println("I am A");
  12.         }

  13.         @Override
  14.         public void mB() {
  15.                 // TODO Auto-generated method stub
  16.                 System.out.println("I am B");
  17.         }

  18. }

  19. class Test {

  20.         public static void main(String args[]) {
  21.                 Tmp t = new Tmp();
  22.                 t.mA();
  23.                 t.mB();

  24.         }

  25. }
复制代码

控制台打印:
  1. I am A
  2. I am B
复制代码

回复 使用道具 举报
kid1943 发表于 2014-10-6 10:09
一个接口可以继承另一个接口,一个普通类可以实现多个接口,而一个抽象类可以实现一个接口。
可以参考一下 ...

又试了一下楼主所说的接口多继承是正确的
代码:

  1. interface C{
  2.         void mC();
  3. }
  4. interface A {
  5.         void mA();
  6. }

  7. interface B extends A ,C{
  8.         void mB();

  9. }

  10. class Tmp implements B {

  11.         @Override
  12.         public void mA() {
  13.                 // TODO Auto-generated method stub
  14.                 System.out.println("I am A");
  15.         }

  16.         @Override
  17.         public void mB() {
  18.                 // TODO Auto-generated method stub
  19.                 System.out.println("I am B");
  20.         }

  21.         @Override
  22.         public void mC() {
  23.                 // TODO Auto-generated method stub
  24.                 System.out.println("I am C");
  25.         }

  26. }

  27. class Test {

  28.         public static void main(String args[]) {
  29.                 Tmp t = new Tmp();
  30.                 t.mA();
  31.                 t.mB();
  32.                 t.mC();

  33.         }

  34. }
复制代码

打印结果:
  1. I am A
  2. I am B
  3. I am C
复制代码
回复 使用道具 举报
白金角斗士 发表于 2014-10-3 20:33
哥们儿,是不是搞错了。

类与类之间才是继承关系,java里可以说支持多继承,但是仅仅在接口以多实现的方式 ...

接口继承接口,类实现接口,接口可以多继承,类也可以多实现接口
回复 使用道具 举报
接口中本来就只有抽象方法、、、接口之间必须是继承啊。。。
回复 使用道具 举报
好像是啊!但是类不能多继承,类可以多实现接口
回复 使用道具 举报
一个类只能继承另一个类,一个接口可以继承多个接口,一个类可以实现多个接口
回复 使用道具 举报
new999 中级黑马 2014-10-12 10:01:12
13#
确实是一个看过后会忘记的细节
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马