目录
1、概念
2、接口的使用细节
3、接口案例
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)运行结果



