最近 不忙,学习一下基础薄弱的地方,写下博客,巩固一下学习内容,同时希望可以帮助他人。
关于抽象类和接口 在我们日常项目中 ,经常会用到抽象类和接口。此处简略的以举例的方式 来对二者进行区分:
比如说 ,我们 需要写几个类,分别为cat ,dog ,bird 三个类,这三个类中有一些共同的点 ,比如说,都可以eat ,都是animal
但是每个类 又各自有自己的特点,cat 可以抓老鼠,dog 可以看家,bird 可以飞 等;
鉴于这种情况:
我们可以创建一个抽象类 ,animal ,作为一个父类 ,将三个类都需要实现的 必须实现的 可以写成 抽象方法 ,在子类中继承animal 类,必须实现 这几个方法 ,否则就会报错
当然 也不是抽象类中所有的方法都是抽象方法 ,可以写成不是抽象方法 ,自由的选择 重写哪些方法 。
针对于 ,每个类的各自特点的实现,就可以在 继承抽象类之后,实现相应的接口 :
以 cat 为例子 ,我们可以创建一个catch的接口 ,当然这里是为了方便写 ,名字可以自己随便取 ,在接口内写一个抽象方法 ,
实现这个接口的 类 ,就必须实现 接口里面的所有方法 ,
这里就要提一下 ,接口和抽象类 的区别 ,抽象类中 不一定都是抽象方法,但是 接口中的 方法都是抽象方法 ,
大家只要 记住 ,只要实现了 这个接口 ,就需要实现接口里面的所有方法 ,否则 也会 报错。
另外 还有一点儿 ,在Java中是单继承 多实现,即 一个类 只可以有一个父类 ,但是可以同时实现多个接口 ,
比较常见的 ,我们一般在开发中 ,点击事件 是非常常用的 ,我们就可以在实现 Java类中 ,实现 onclick接口 ,也可以根据需要实现其他的接口
,比如说列表中的item的点击事件 等接口
最后 ,总结一下
一般在抽取公用的一些东西的时候 ,我们可以考虑使用抽象类 ,
但是在每个类 具体的一些 额外需要实现的 业务 ,我们 可以有限考虑 接口
本文 参考链接如下:
https://www.jianshu.com/p/d8f06ad45135