对于刚接触面向对象的人或许都有一个疑问——接口的意义在哪?
继承了某个接口,就要实现它的方法,我不如直接在当前类中定义这些方法并去实现了,为什么还要通过继承接口去实现呢,这不是多绕了几百里路吗?
如果你认为,可以直接在当前类中定义这些方法并去实现,那么你同样会对一个概念有疑惑——继承的疑惑。
你可能会说,继承不是很简单吗,我继承了某个类,继承的类就拥有了父类的成员。如果你这么认为,那么你也会对一个概念有疑惑——多态的疑惑。
首先要明白,类继承的好处有什么? 无非包括两点:扩展成员、可实现多态化。
在C#中,都不支持类的多继承。为什么不支持呢? 微软的技术不过关吗? 不是的,只是因为他们觉得类的单继承更合适。所以,一个对象的多态化就有了一定的局限性,于是,就发明了一种东西叫做接口。
这样,如果有必要,我的类就可以继承很多个接口,就更加地多态了。
面向对象的设计最主要的目的就是模拟生活中的某种思想,这样人类去思考就更舒服了。在锻炼自己的面向对象设计能力的时候,要刻意运用这种思想。所以,如果理解了面向对象,也就理解了接口。
如果你始终对接口不理解,模糊不清,那么你始终对一个问题有困扰——多态。