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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐巍 黑马帝   /  2012-2-29 02:05  /  1701 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 唐巍 于 2012-2-29 02:05 编辑

为什么接口支持多实现,而类不支持多实现?
例如:
interface A
{
        void methodA();
}
interface B
{
        void methodB();
}
interface C extends A,B
{
        void methodC();
}

2 个回复

倒序浏览
你是说多继承吗?  C语言可以继承多个父类,但是有很多不足 所以 Java 语言出来后就设定只能继承一个父类, 为了满足多继承的体现 就用了接口作为实现。 你问为什么  简单。 我举个例子给你:

飞机是个父类 里面具有飞的方法,  水中滑翔机是继承了飞机类的子类  ,  直升飞机 继承了飞机父类

两架飞机都可以飞, 但是着落却不同  ,他们已经有了一个父类 不能继承了  怎么办呢?
  
我们就用接口实现, 一个是可以在水里浮起来的实现类,一个是只要在平地就可以降落!

OK  我现在造一架有可以在陆地降落 又可以在水里降落的直升机 我只实现上面的两接口就行了,这样是不是很方便? 很清晰?  接口一般用作功能上。 便于扩展、安全高 因为实现类是看不到的 只能看到接口的抽象方法。

记住,代码我们只用写一遍仅仅只写一边 就可以了。 不过不是给一个方法你都提出来一个接口。你以后写多了就知道了。
回复 使用道具 举报
对于多继承会出现许多不确定性,比如:B继承A,C也继承A,B重写了A中的方法,C也重写了A中的方法。此时 如果D 同时继承B和C的话,那么D中的某个方法(源于A的),究竟是用B的还是C的呢?这样就是耦合性太高,不利于程序的安全性和健壮性。
接口的特点:
1,提供功能的扩展。
2,接口是对外暴露的规则。
3,接口的出现降低了耦合性。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马