目录
1、概念
接口就是给出没有实现的一些方法封装到一起,到某个类要实现的时候,在根据具体情况将把这些方法实现出来,它是一种约束,一种规范。
格式:
interface 接口名{
属性
方法
}
类实现接口:
class 类名 implement 接口名{
自己属性
自己方法
必须实现接口的抽象方法
}
2、接口的使用细节
1)接口不能实例化
2)接口中所有的方法都是public方法,且都是抽象方法,public和abstract可以省略不写。
public interface DBInterface { void connection();//此处省略了public abstract void stop();//此处省略了public abstract }
3)一个普通类实现接口,必须将接口中的所有方法实现
4)抽象类实现接口,可以不用实现接口的方法
public abstract class Test implements DBInterface{ //定义为抽象类,可以不用实现接口的方法 }
5)一个类可以实现多个接口
public class MysqlDB implements DBInterface,DBInterface1{ @Override public void connection() { System.out.println("链接Mysql"); } @Override public void stop() { System.out.println("关闭Mysql"); } }
6)接口中的属性只能是final的,而且是public static final修饰符。比如:int a = 1;实际上是public static final int a = 1(必须初始化)。
public interface DBInterface { int n1 = 10; //等价public static final int n1 = 10; void connection(); }
7)接口中属性的访问形式:接口名.属性名
public class Interface { public static void main(String[] args) { System.out.println(DBInterface.n1); } }
8)一个接口不能继承其他的类,但是可以继承多个别的接口
public interface DBInterface extends DBInterface1,DBInterface2{ void connection(); }
3、接口案例
1)定义接口
public interface DBInterface { void connection(); void stop(); }
2)定义MysqlDB类和OracleDB类并实现接口
public class MysqlDB implements DBInterface{ @Override public void connection() { System.out.println("连接Mysql"); } @Override public void stop() { System.out.println("关闭Mysql"); } }
public class OracleDB implements DBInterface{ @Override public void connection() { System.out.println("连接oracle"); } @Override public void stop() { System.out.println("关闭oracle"); } }
3)测试类
public class Interface { public static void main(String[] args) { MysqlDB mysqlDB = new MysqlDB(); OracleDB oracleDB = new OracleDB(); t(mysqlDB); t(oracleDB); } public static void t(DBInterface db) { db.connection(); db.stop(); } }
4)运行结果