码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类与接口区别

时间:2017-04-02 15:49:17      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:bsp   角色   可维护性   意义   新建   去重   第三方   更新   解耦   

接口:存在的意义在于解耦,增强代码的可拓展性,可维护性。

抽象类:常用于充当公共角色,用于被其子类继承,子类继承其实现的方法,去重写其抽象的方法。继承更倾向于对类的完善。

 

举个栗子:

接口:小明是i西科的码手,某日李师兄分配了任务,要求他写一个类,用于封装教务处爬虫代码,代码会被引用于tsm类(第三方授权平台管理类)中,于是小明就开始写,写了很多代码,但是代码混乱,如果再想加入新的东西,简直太难了。第二天师兄来了实验室,告诉小明把实验课爬虫也加进这个类中。这可苦坏了小明,因为在tsm类中,直接引用了教务处爬虫类,如果修改tsm类也会被涉及到,势必会影响其他功能。这就是不使用接口带来的后果。如果使用了接口结果会怎么样呢?那么小明就不用这个类了,新建一个类,该类实现接口,在新的类中写新的代码。这样在不修改原来的代码的同时,又增加了代码的拓展新。

 

抽象类:i西科的四个授权平台(教务处、实验课、一卡通、图书馆),他们虽然登录网站,登录方法,登录参数不一致,但是他们都需要从数据库获取密码,如果cookie未失效就获取cookie,登录之后更新cookie存入数据库。这时候就需要抽象类去充当公共类,去实现数据库获取密码,cookie查找更新逻辑代码,而登录,爬取信息等方法就需要子类自己去实现了。

 

共同点:

(1)都不能实例化

(2)只有子类实现了接口、重写抽象方法后才能实例化

 

抽象类与接口区别

标签:bsp   角色   可维护性   意义   新建   去重   第三方   更新   解耦   

原文地址:http://www.cnblogs.com/boycelee/p/6659086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!