一、基本介绍
接口就是一些没有实现的方法,封装到一起,当某些类需要时,再根据具体情况写出来
二、语法实现
- 接口编写:interface 接口名{ //属性 方法 }
- 接入编写:class 类名 implement 接口名{ 自己属性;自己方法;必须实现接口的抽象方法}
三、注意事项和细节
- 接口不能被实例化
- 接口中所有方法是public方法,接口中抽象方法可以不用abstract修饰,例如:void text(); 等价于 abstract void text();
- 一个普通类实现接口,就必须将该接口的所有方法都实现
- 抽象类实现接口,可以不用实现接口的方法
- 一个类同时可以实现多个接口
- 接口中的属性只能是final,而且是public static final 修饰符
- 接口中属性的访问形式:接口名.属性名
- 接口不能继承其他类,但是可以继承多个别的接口,例:interface ID extends IB,IC { }
- 接口的修饰符只能是public和默认,这点和类的修饰符是一样的
四:案例演示
编写一个接口 Interface,里面有connect 连接方法和 close 关闭方法
package Interface; public interface dbinterface { //编写接口需求 public void connet(); public void close(); }
在编写一个dbmysql和dbOracle方法连接接口,并重写方法
package Interface; public class dbmysql implements dbinterface{ //对上面编写的接口进行连接 @Override public void connet() { System.out.println("mysql connet ..."); } @Override public void close() { System.out.println("mysql close ..."); } }
package Interface; public class dboracle implements dbinterface { @Override public void connet() { System.out.println("oracle connet ..."); } @Override public void close() { System.out.println("oracle close ..."); } }
在runer类里面对MySQL和Oracle类进行实例化,再用一个t方法传入一个接口对象,调用接口方法
package Interface; public class runer { public static void main(String[] args) { runer runer = new runer(); dbmysql dbmysql = new dbmysql(); runer.t(dbmysql); dboracle dboracle = new dboracle(); runer.t(dboracle); } public void t(dbinterface db){ db.connet(); db.close(); } }