谈谈抽象类和接口

抽象类和接口是面向对象编程中不可或缺的部分,相信大部分开发人员在日常工作中经常会看到他们的身影,在这里简单淡淡对他们的认识。

一、抽象类:抽象类是类的一种形式,不能实例化可以被继承。个人认为抽象类和子类是一般和特殊的关系,最大的作用是实现代码的复用。

      举例:有两个类A、B,两个类中属性相同,大部分方法也相同,只有一个方法不同,那么这个时候就绝对体现出抽象类的优势了。

二、接口:接口只是定义一些操作的规范,不能实例化可以被继承。接口仅仅是子类应该实现的规则。接口最大的作用就是实现多态性。

      举例:电脑主机中的硬盘可以使用希捷、西部数据、日立等很多品牌,大家有没有想过为什么可以使用不同厂家的硬盘,答案就是有一种

      规范来约束厂商,只要不同的厂商实现这个规范就可以了。这个规范就是一种接口,各个厂商都要继承并实现该接口问题就可以解决了。

抽象类和接口没有必然的联系,如果真有联系也那只是面试的过程中有人问你“抽象类和接口有什么区别”,唉这种问题真人受不了呀。

在某些方面使用二者好像都可以实现,而且没有太大的区别。至于到底是选择抽象类还是选择接口,个人认为主要看动机吧,简单点比如像第一

个例子当然要使用抽象类,因为动机是避免代码重复,那第二个例子当然使用接口很简单动机是实现多态性。这只是一点建议,最终怎么使用还

希望大家在工作灵活运用。

就写到这吧,希望对大家有个帮助,当然只是拙见,欢迎大家指点。

posted on 2012-11-17 14:34  rikou  阅读(320)  评论(0编辑  收藏  举报

导航