码迷,mamicode.com
首页 > 其他好文 > 详细

接口和抽象类的区别

时间:2019-08-20 14:10:56      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:开始   interface   鼠标   定义   AMM   int   由来   mouse   继承   

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

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

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

接口和抽象类的区别

标签:开始   interface   鼠标   定义   AMM   int   由来   mouse   继承   

原文地址:https://blog.51cto.com/11583017/2430955

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!