黑马程序员技术交流社区
标题:
java为什么使用接口时要实现接口中所有的方法呢?
[打印本页]
作者:
赵熠东(赵东东)
时间:
2013-2-20 20:57
标题:
java为什么使用接口时要实现接口中所有的方法呢?
本帖最后由 赵熠东(赵东东) 于 2013-5-6 20:20 编辑
RT 为什么使用接口的时候,要在实现接口的类中实现接口中所有的抽象方法?想偷懒的话还要使用适配器,多麻烦呀!java语言为什么要这么规定呀!假如可以不实现所有的抽象方法的话,也就不用引入适配器这个概念了,这样不更好吗?
作者:
黑马刘杰
时间:
2013-2-20 21:30
Java中的接口是一系列方法的声明,是一些方法特征的集合。如果你要继承这个接口,你就必须遵守这些规范,必须有这些特征。
比如,这是一个计算机接口,这里面就定义了“输人数据和程序的输入设备、记忆程序和数据的存储器、完成数据加工处理的运算器、控制程序执行的控制器、输出处理结果的输出设备”五大规则。
你如果想制造一台计算机的话,就必须遵守这五个规则,否则,就不是计算机啦。
作者:
陈圳
时间:
2013-2-20 21:32
在没有涉及接口之前,不是只有抽象类么?接口可以说是抽象类的标准化.如果不想实现接口的所有方法.还不如定义一个抽象类.接口我感觉是一种标准,这也是面向对象的核心,把所有的事物功能化,标准化.单独实现以尽最大程序减少各功能块间的偶合性.
打一个小比喻:你开了一家小公司,怎么弄都行.但是企业达到一定规模之后,所有的部门都必须开设了.人事/人资/财务...而且各部门间的事务不能纠缠,不然工作起来极其麻烦.效率也低.你是公司老总了,你的公司都国际化了.你会想着,我的公司我不实现人事部这个功能行不行?行,也有方法(这里应该等同适配器),但是好么?明显不符合企业标准.接口是什么.不就是扩展功能用的.
作者:
偏執旳、靑春
时间:
2013-2-20 21:32
不过是为了方便后期的扩展罢了
作者:
杨玲
时间:
2013-2-20 21:34
呵呵,因为java接口中的方法都是抽象的呀,抽象的方法就是说,只有声明没有定义,比如:
public abstruct void demo();
复制代码
它这样就相当于是在局部声明了一个变量却没有赋值,比如:
int i;
复制代码
而要想使用自然是必须定义的,而你说的适配器它其实就是一种对策问题。
都说上有政策下有对策就是这个意思了,你看哈:
interface A
{
//我这个接口有很多个方法,你让我没一个实现它的类都实现全部方法?开玩笑,多累呀。
void demo();
int function();
....
}
复制代码
然后我们的对策就是:
public B implememts A
{
public void demo(){}
public int function(){}
....
}
复制代码
下次如果我想要用的这个接口中的那个方法,我再实现那个就成了,别的我用不到,实现了也是白搭!
作者:
江华
时间:
2013-2-20 21:56
接口,其实无处不在
把你、我做为两个对象
我们两个要进行沟通,就要有一个标准的接口,才能沟通,例如:汉语、汉字
现在,我们在交流,我们也只是用到了,几十字而已,
你说,能不能为了咱们两个的这次交流,让接口只有这几个字?
如果为了这次交流,就学这几个字,那你在交流前怎么知道,我们交流的内容就这几个字?
如果限制了,只学会这几个字,那么其他的技术问题还能继续交流吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2