作者mildman (夜梦纷)
看板java
标题Re: [问题] 请问interface到底是做什麽用的?
时间Fri Apr 14 01:55:32 2006
别想太多....介面就是 做某个function 所开放出来的窗口....
所以才叫介面呀....若想要具有这个介面的功能...那就去 implements这个介面.
举各例子:
* USB...is just a " Interface"................
* 所有想要support这种传输方式(maybe some methods)的devices皆要实作这一个
Interface...(数位相机, MP3, protable disks....)
* 所以这些devices 就必须实作USB 所定的传输方式(implements methods)
才能宣称说: "我支援USB介面传输喔".....但是不是继承的 " is-a " 关系
....说我的相机是一种USB有点怪怪的吧....
.应该是说:我的相机有(具备)USB介面的传输功能喔.......
* 所以当一只智慧型手机(继承" 手机") ..且具备照相功能(实作"拍照"介面)时..
..就达到多重继承的效果, 但是还是解读成..智慧型手机 is-a 手机(继承)..
..但具备拍照功能(实作介面)....而不是智慧型手机是一种相机(not is-a).
......而是本质功能为手机才恰当....
* 愚见请各位高手不吝指正....
※ 引述《kazenol (随便啦)》之铭言:
: 我找了很多资料,大致上了解的是,介面是为了解决单一继承的问题、或是规范
: 出继承者必须做出介面预定的规则。
: 继承我大概了解,子类别继承之後可以使用父类别的函式与变数。可是继承介面
: 有什麽好处?如果这个介面规定要做一个jump,但是继承後jump也不能用,要去
: 写一个实际jump的方法。那我直接继承其他类别,也是可以定义jump func,为什
: 麽要绕一圈去继承一个没有内容、只写个名字的类别呢?
: 我看过一个例子,有个父class很会运动,母class很会唱歌。但是小孩子只能继承
: 父或母而变得不完美。所以定义一个介面包含会唱歌和会运动的抽象函式,然後由
: 小孩去实作,这样就算多重继承。可是第一,父类别的会运动是会讲明怎麽个运动
: 法,但是介面的“会运动“,就这三个字而已,没有说明也没有方式。第二,这个
: 介面的会运动和会唱歌除了名称以外,跟这对父母类别有关连吗?? 而且其他实作
: 这个介面的其他小孩,他们的会唱歌和会运动函式会写的一样吗?
: 不好意思扯了一堆,因为我一直看不懂介面所以放弃java,没想到又在php遇上
: ,只好求各位帮我解惑。谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.52.201