黑马程序员技术交流社区
标题:
关于接口的问题
[打印本页]
作者:
唐巍
时间:
2012-2-29 02:05
标题:
关于接口的问题
本帖最后由 唐巍 于 2012-2-29 02:05 编辑
为什么接口支持多实现,而类不支持多实现?
例如:
interface A
{
void methodA();
}
interface B
{
void methodB();
}
interface C extends A,B
{
void methodC();
}
作者:
周峰
时间:
2012-2-29 03:08
你是说多继承吗? C语言可以继承多个父类,但是有很多不足 所以 Java 语言出来后就设定只能继承一个父类, 为了满足多继承的体现 就用了接口作为实现。 你问为什么 简单。 我举个例子给你:
飞机是个父类 里面具有飞的方法, 水中滑翔机是继承了飞机类的子类 , 直升飞机 继承了飞机父类
两架飞机都可以飞, 但是着落却不同 ,他们已经有了一个父类 不能继承了 怎么办呢?
我们就用接口实现, 一个是可以在水里浮起来的实现类,一个是只要在平地就可以降落!
OK 我现在造一架有可以在陆地降落 又可以在水里降落的直升机 我只实现上面的两接口就行了,这样是不是很方便? 很清晰? 接口一般用作功能上。 便于扩展、安全高 因为实现类是看不到的 只能看到接口的抽象方法。
记住,代码我们只用写一遍仅仅只写一边 就可以了。 不过不是给一个方法你都提出来一个接口。你以后写多了就知道了。
作者:
闫玉泉
时间:
2012-2-29 08:23
对于多继承会出现许多不确定性,比如:B继承A,C也继承A,B重写了A中的方法,C也重写了A中的方法。此时 如果D 同时继承B和C的话,那么D中的某个方法(源于A的),究竟是用B的还是C的呢?这样就是耦合性太高,不利于程序的安全性和健壮性。
接口的特点:
1,提供功能的扩展。
2,接口是对外暴露的规则。
3,接口的出现降低了耦合性。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2