接口和抽象类的区别

Posted

tags:

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

我们先看下抽象类的由来,抽象类是将具有类似特点的事物相同部分进行抽取而来的,他的目的是提供继承:
例如:
程序员
属性:姓名、薪水
方法:工作

经理:
属性:姓名、薪水、奖金
方法:工作

程序员和经理有共同的属性:姓名,薪水,有共同的方法工作,将他们这些共性的部分抽取出来就可以形成抽象类 员工。在这个例子中员工本身是没有意义的他的意义就在于可以作为程序员和经理的父类,提供继承。而员工这个类我们可以把它定义为抽象类。
abstract class Employee
public String name;
public double pay;
public abstract void work();

程序员继承员工类:
class Programmer extends Employee
public void work()
System.out.println("codeing....");


经理也继承员工类:
class Manage extends Employee
public int bouns;
public void work()
System.out.println("manage");


关于抽象类有一些需要注意的地方:

  1. 有抽象方法的类必须是抽象类。
  2. 抽象类中可以有非抽象方法
  3. 继承了抽象类的类必须实现该抽象类的所有抽象方法,否则它也是一个抽象类。

接口是一种特殊的抽象类,在接口中所有的方法都是抽象方法。它比抽象类提供了更高的抽象。接口一般是用来定义一组规范,比如我们常说的usb接口就是一种电脑外设的规范,不管是鼠标还是键盘还是u盘,只要符合这个规范的外设都可以插入这个接口。
使用usb接口可以降低鼠标键盘这些外设和笔记本电脑的耦合性。
interface USB

public void open();

Class Mouse implements USB
Public void open()
System.out.println(“鼠标开始工作!”);

Class KeyBoard implements USB
Public void open()
System.out.println(“键盘开始工作”);


接口和抽象类之间的区别在于他们的目的不同,抽象类是为了提供继承,而接口是为了提供一种规范,目的是为了降低耦合,接口比抽象类抽象程度更高。

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

接口和抽象类的区别

接口和抽象类的区别

接口和抽象类的区别

接口和抽象类的区别是什么?

接口和抽象类的区别是什么?

接口和抽象类的区别