在接口里只能含有常量和抽象方法,每一個實現(xiàn)它的類都必須把接口里面的所有抽象方法全部實現(xiàn)(而抽象類的子類必須把抽象類里的抽象方法全部實現(xiàn))。
我們做一個接口的小例子,接口的引入極大地豐富了Java的靈活性,使得類的單繼承性得到極大地補充,接口可以多繼承,而且只能是接口繼承接口,類或者抽象類來實現(xiàn)接口。總之,接口類似于一種模板,相當于框架,至于里面的內(nèi)容,是需要你來實現(xiàn)的。
下面我們附個小例子:

interface DateBase{
 public void addDateBase();
 public void deleteDateBase();
 public void modifyDateBase();
 public void seekDateBase();
}
class SQLServer implements DateBase{
 public void addDateBase(){
  System.out.println("添加一個微軟公司的數(shù)據(jù)庫");
 }
 public void deleteDateBase(){
  System.out.println("刪除一個微軟公司的數(shù)據(jù)庫");
 }
 public void modifyDateBase(){
  System.out.println("修改一個微軟公司的數(shù)據(jù)庫");
 }
 public void seekDateBase(){
  System.out.println("查找一個微軟公司的數(shù)據(jù)庫");
 }
}

class Oracle implements DateBase{
 public void addDateBase(){
  System.out.println("添加一個太陽公司的數(shù)據(jù)庫");
 }
 public void deleteDateBase(){
  System.out.println("刪除一個太陽公司的數(shù)據(jù)庫");
 }
 public void modifyDateBase(){
  System.out.println("修改一個太陽公司的數(shù)據(jù)庫");
 }
 public void seekDateBase(){
  System.out.println("查找一個太陽公司的數(shù)據(jù)庫");
 }
}

public class Interface {

 public static void main(String[] args) {
  DateBase db1 = new SQLServer();
  DateBase db2 = new Oracle();
  db1.addDateBase();
  db1.deleteDateBase();
  db1.modifyDateBase();
  db1.seekDateBase();
  db2.addDateBase();
  db2.deleteDateBase();
  db2.modifyDateBase();
  db2.seekDateBase();
  
 }

}

我們看看運行結果:



這個例子和抽象類那個例子沒有本質(zhì)區(qū)別,都是實現(xiàn)了類的多態(tài)性,他們在功能上有很大的相似之處,我們需要掌握它們的使用和細微區(qū)別就可以了。