在接口里只能含有常量和抽象方法,每一个实现它的类都必须把接口里面的所有抽象方法全部实现(而抽象类的子类必须把抽象类里的抽象方法全部实现)。
我们做一个接口的小例子,接口的引入极大地丰富了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();
}
}
我们看看运行结果:
这个例子和抽象类那个例子没有本质区别,都是实现了类的多态性,他们在功能上有很大的相似之处,我们需要掌握它们的使用和细微区别就可以了。