抽象类与接口的区别

来源:互联网 发布:java调用kettle实例 编辑:程序博客网 时间:2024/06/06 12:33

最近 不忙,学习一下基础薄弱的地方,写下博客,巩固一下学习内容,同时希望可以帮助他人。

关于抽象类和接口  在我们日常项目中 ,经常会用到抽象类和接口。此处简略的以举例的方式 来对二者进行区分:


比如说 ,我们 需要写几个类,分别为cat ,dog ,bird 三个类,这三个类中有一些共同的点 ,比如说,都可以eat ,都是animal


但是每个类 又各自有自己的特点,cat 可以抓老鼠,dog 可以看家,bird 可以飞   等;


鉴于这种情况:

我们可以创建一个抽象类 ,animal ,作为一个父类  ,将三个类都需要实现的 必须实现的 可以写成 抽象方法 ,在子类中继承animal 类,必须实现 这几个方法 ,否则就会报错


当然 也不是抽象类中所有的方法都是抽象方法 ,可以写成不是抽象方法 ,自由的选择 重写哪些方法 。


针对于 ,每个类的各自特点的实现,就可以在 继承抽象类之后,实现相应的接口 :

以 cat 为例子 ,我们可以创建一个catch的接口 ,当然这里是为了方便写 ,名字可以自己随便取 ,在接口内写一个抽象方法 ,

实现这个接口的 类 ,就必须实现 接口里面的所有方法 ,

这里就要提一下 ,接口和抽象类 的区别 ,抽象类中 不一定都是抽象方法,但是 接口中的 方法都是抽象方法 ,

大家只要 记住 ,只要实现了 这个接口 ,就需要实现接口里面的所有方法 ,否则 也会 报错。


另外 还有一点儿 ,在Java中是单继承  多实现,即 一个类 只可以有一个父类 ,但是可以同时实现多个接口 ,

比较常见的 ,我们一般在开发中 ,点击事件 是非常常用的 ,我们就可以在实现 Java类中 ,实现 onclick接口 ,也可以根据需要实现其他的接口

,比如说列表中的item的点击事件 等接口

最后 ,总结一下

一般在抽取公用的一些东西的时候 ,我们可以考虑使用抽象类 ,

但是在每个类 具体的一些 额外需要实现的 业务 ,我们 可以有限考虑 接口


本文 参考链接如下:

https://www.jianshu.com/p/d8f06ad45135