在接口里只能含有常量和抽象方法,每一个实现它的类都必须把接口里面的所有抽象方法全部实现(而抽象类的子类必须把抽象类里的抽象方法全部实现)。
我们做一个接口的小例子,接口的引入极大地丰富了Java的灵活性,使得类的单继承性得到极大地补充,接口可以多继承,而且只能是接口继承接口,类或者抽象类来实现接口。总之,接口类似于一种模板,相当于框架,至于里面的内容,是需要你来实现的。
下面我们附个小例子:

interface DateBase{
 public void addDateBase();
 public void deleteDateBase();
 public void modifyDateBase();
 public void seekDateBase();
}
class SQLServer implements DateBase{
 public void addDateBase(){
  System.out.println("添加一个微软公司的数据库");
 }
 public void deleteDateBase(){
  System.out.println("删除一个微软公司的数据库");
 }
 public void modifyDateBase(){
  System.out.println("修改一个微软公司的数据库");
 }
 public void seekDateBase(){
  System.out.println("查找一个微软公司的数据库");
 }
}

class Oracle implements DateBase{
 public void addDateBase(){
  System.out.println("添加一个太阳公司的数据库");
 }
 public void deleteDateBase(){
  System.out.println("删除一个太阳公司的数据库");
 }
 public void modifyDateBase(){
  System.out.println("修改一个太阳公司的数据库");
 }
 public void seekDateBase(){
  System.out.println("查找一个太阳公司的数据库");
 }
}

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();
  
 }

}

我们看看运行结果:



这个例子和抽象类那个例子没有本质区别,都是实现了类的多态性,他们在功能上有很大的相似之处,我们需要掌握它们的使用和细微区别就可以了。