在接口里只能含有常量和抽象方法,每一個實現(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ū)別就可以了。