谈谈抽象类和接口

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

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

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

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

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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/rikou/archive/2012/11/17/AbstractInterface.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值