接口和抽象類的區別

咱們先看下抽象類的由來,抽象類是將具備相似特色的事物相同部分進行抽取而來的,他的目的是提供繼承:
例如:
程序員:
屬性:姓名、薪水
方法:工做程序員

經理:
屬性:姓名、薪水、獎金
方法:工做ide

程序員和經理有共同的屬性:姓名,薪水,有共同的方法工做,將他們這些共性的部分抽取出來就能夠造成抽象類 員工。在這個例子中員工自己是沒有意義的他的意義就在於能夠做爲程序員和經理的父類,提供繼承。而員工這個類咱們能夠把它定義爲抽象類。
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");
}
}
關於抽象類有一些須要注意的地方:code

  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(「鍵盤開始工做」);
}
}
接口和抽象類之間的區別在於他們的目的不一樣,抽象類是爲了提供繼承,而接口是爲了提供一種規範,目的是爲了下降耦合,接口比抽象類抽象程度更高。it

相關文章
相關標籤/搜索