接口和抽象类的区别

一、两者的概念对比图

接口和抽象类,老生常谈的概念,下面直接上一张自己总结的对比图


接口和抽象类对比图

二、两者的具体用法

具体的用法,直接用具体用例来说明

接口定义的功能。在写控件或者常用的类的时候,我们首先会通篇考虑,定义好一些rules,来约束后面的行为。

抽象类:实现方法或者被子类实现的抽象方法。

eg1:接口:BaseActivity的定义,我首先会考虑BaseActivity将要写哪些方法,而不是想到哪些方法再去写。那么我会先写个接口,将我即将实现的方法,全部定义出来。


BaseActivity-接口定义

eg1:接下来,我们用抽象类实现接口中定义的部分方法


BaseActivity-抽象类的定义

eg1:在BaseActivity的抽象类里,我们实现了在接口中定义的openActivity这个抽象方法,同时,我们定义了praseJson这个抽象方法(网络请求的返回方法)。那么我们在具体的Activity中继承BaseActivity的时候,如果有网络请求的话,我们可以直接重写praseJson这个方法就可以了。


BaseActivity-继承重写

eg2:在写自定义控件或者动画的时候,定义我们可能会用到的方法。发送花的动画,首先定义花的路径和花的行为方法

动画-接口定义1


动画-接口定义2


上班了,先写到这。。。忽略上面古老的定义方法,很早写的框架

你可能感兴趣的:(接口和抽象类的区别)