不是说用接口就叫面向接口编程.
面向接口是一种思想,说的是将一个功能作为一个接口发布.你用抽象类来做也是一样的,那也叫面向接口编程.
抽象类因为会有自己的成员或者方法,又会造成耦合.所以一般都用接口
你的解释我非常同意,能否再帮我指点下面向接口编程有什么优点?我知道的很少。
@追梦赤子心: 这些都属于面向对象.做程序员早晚要学.
总归来说目的就是让代码更好维护.和复用.面向对象最简单的应该就是面向接口.
面向对象就是个大课题了.这么点打不完的.你可以百度下.或者学习下"设计模式"
你提供两份分别用抽象类和接口写的代码看看。
接口和抽象类的关注点不同,接口的关注点是行为,抽象类的关注点是对象,举个例子,比如系统有两个对象:麻雀和大雁,如果想提取公共部分,那么就用抽象类,叫“鸟”,鸟这个抽象类里可以把麻雀和大雁及其他鸟类共有的属性或行为用代码实现了(代码复用),如果想某种鸟类具备自己独特的行为,那么就重写父类的方法。此后系统中又加入了飞机对象,如果要把飞这个动作抽象出来就用接口,比如叫IFly吧,麻雀、大雁以及飞机都可以实现接口IFly这个飞的行为。
接口封装一个或多个有联系的行为。抽象类封装具有共同点的一系列对象的属性和方法。
以上是个人理解,仅供参考,下面是伪代码
absClass AbsBird { public String Name{get;set;} public void Run() { print(this.Name + "is running";) } public void virtual Fuck() { } } Interface IFly { void Fly(); } Class 飞机 : IFly { void Fly() { print("靠油作为动力飞行"); } } Class 麻雀: AbsBird, IFly { override void Fuck() { print("叽叽喳喳") } void Fly() { print("主要靠胸肌飞行"); } } Class 大雁: AbsBird, IFly { override void Fuck() { print("咕咕咕咕") } void Fly() { print("主要靠气流飞行"); } }
谢谢你的指点,鞭辟入里,受教了!
@追梦赤子心: 个人理解,建议楼主爱看看楼下的链接吧,多听则明,也许我理解的也有问题
谢谢你分享,我一点开,我就立马收藏了!哈哈,回家好好研究下!!
http://www.cnblogs.com/yuchengNET/p/3522165.html http://kb.cnblogs.com/page/41836/看看这两篇文章。
接口是一种规范,而抽象是对对象的抽象。
谢谢你的分享!
接口一般指的是一种能力 有些书中定义接口 喜欢用I开头 able结尾 就是一种能力
接口是一种通用的协议。面向接口编程可以使得编程者不关心具体实现的细节,而只关心一个统一的标准。
举个例子,你买了一台新的组装机,你不需要知道那些硬件具体的工作原理,只需要知道如何使用它们的接口相互连接起来,就可以使这台计算机正常工作。
抽象是对其继承一族的特性和行为进行规范,而接口是对不同族群的最小行为规范
有道理,我记住了!