接口和抽象类的区别

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

成都创新互联服务项目包括黑河网站建设、黑河网站制作、黑河网页制作以及黑河网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,黑河网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到黑河省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

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

程序员和经理有共同的属性:姓名,薪水,有共同的方法工作,将他们这些共性的部分抽取出来就可以形成抽象类 员工。在这个例子中员工本身是没有意义的他的意义就在于可以作为程序员和经理的父类,提供继承。而员工这个类我们可以把它定义为抽象类。
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(“键盘开始工作”);
}
}
接口和抽象类之间的区别在于他们的目的不同,抽象类是为了提供继承,而接口是为了提供一种规范,目的是为了降低耦合,接口比抽象类抽象程度更高。


名称栏目:接口和抽象类的区别
网站URL:http://scyanting.com/article/gepdce.html