1.接口快速入门
接口这样的设计需求在Java编程/php/.net/go中也是会大量存在的 一个程序就是一个世界 在现实世界存在的情况 在程序中也会出现 我们用程序来模拟一下
package com.logic.interface_;
public interface USB {
public void start();
public void stop();
}
package com.logic.interface_;
public class Phone implements USB {
@Override
public void start() {
System.out.println("手机开始工作...");
}
@Override
public void stop() {
System.out.println("手机停止工作...");
}
}
package com.logic.interface_;
public class Camera implements USB {//实现接口本质就是把接口方法实现
@Override
public void start() {
System.out.println("相机开始工作...");
}
@Override
public void stop() {
System.out.println("相机停止工作...");
}
}
package com.logic.interface_;
public class Computer {
public void work(USB usb) {
//通过接口来调用方法
usb.start();
usb.stop();
}
}
package com.logic.interface_;
public class Interface01 {
public static void main(String[] args) {
Camera camera = new Camera();
Phone phone = new Phone();
//创建计算机
Computer computer = new Computer();
computer.work(phone);
computer.work(camera);
}
}
2.接口基本介绍
接口就是给出一些没有实现的方法封装到一起 到某个类要使用的时候 再根据具体情况把这些方法写出来
语法
interface 接口名 {
//属性
//方法(抽象方法 默认实现方法 静态方法)
}
class 类名 implements 接口 {
//自己的属性
//自己的方法
//必须实现的接口的抽象方法
}
小结
在jdk7.0前 接口里的所有方法都没有方法体 即都是抽象方法
jdk8.0后接口可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现
3.接口应用场景
实际应用
现在有一个项目经理,管理三个程序员,功能开发一个软件,为了控制和管理软件,项目经理可以定义一些接口,然后由程序员具体实现。
实际要求:3个程序员,编写三个类,分别完成对Mysql,Oracle,DB2数据库的连接
package com.logic.interface_;
public interface DBInterface {
public void connect();//连接方法
public void close();//关闭连接
}
package com.logic.interface_;
public class Interface03 {
public static void main(String[] args) {
MysqlDB mysqlDB = new MysqlDB();
t(mysqlDB);
OracleDB oracleDB = new OracleDB();
t(oracleDB);
}
public static void t(DBInterface db) {
db.connect();
db.close();
}
}
package com.logic.interface_;
public class MysqlDB implements DBInterface {
@Override
public void connect() {
}
@Override
public void close() {
}
}
package com.logic.interface_;
public class OracleDB implements DBInterface {
@Override
public void connect() {
System.out.println("连接oracle");
}
@Override
public void close() {
System.out.println("关闭oracle");
}
}