抽象类与接口区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象类与接口区别相关的知识,希望对你有一定的参考价值。

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

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

 

举个栗子:

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

 

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

 

共同点:

(1)都不能实例化

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

 

以上是关于抽象类与接口区别的主要内容,如果未能解决你的问题,请参考以下文章

抽象类与接口的区别

抽象类与接口的区别

java抽象类与接口 中 相同方法的调用

抽象类与接口的区别

PHP中抽象类与接口的区别

Java抽象类与接口的区别: