接口
2023-05-12 18:24:14 88浏览
接口,1. 为什么有接口2. 接口快速入门 402这样的设计需求在java编程/php/.net/go中也是会大量存在的,我曾经说过, 个程序就是一个世界,在现实世界存在的情况,在程序中也会出现。我们用程序来模拟一下(上图)代码在com.stulzl.interface_.包中测试Interface01packagecom.stulzl.interf
1. 为什么有接口
2. 接口快速入门 402
这样的设计需求在java编程/php/.net/go中也是会大量存在的,我曾经说过, 个程序就是一个世界,在现实世界存在的情况,在程序中也会出现。我们用程序来模拟一下(上图)
代码在com.stulzl.interface_.包中
测试Interface01
package com.stulzl.interface_;
//接口 402
public class Interface01 {
public static void main(String[] args) {
//创建手机,相机对象
Camera camera = new Camera();//Camera实现了UsbInterface接口
Phone phone = new Phone();//Phone实现了UsbInterface接口
//创建计算机
Computer computer = new Computer();
computer.work(phone);//把手机接入到计算机
System.out.println("================");
computer.work(camera);//把相机接入到计算机
}
}
接口UsbInterface
package com.stulzl.interface_;
public interface UsbInterface {//接口(注意是interface代表接口)
//规定接口的相关方法,规定的.即规范...
public void start();//抽象方法
public void stop();
}
Phone类
package com.stulzl.interface_;
//Phone 类 实现 UsbInterface
//解读 1. 即 Phone 类需要实现 UsbInterface 接口 规定/声明的方法
public class Phone implements UsbInterface{//实现接口,就是把接口方法实现
@Override
public void start() {
System.out.println("手机开始工作……");
}
@Override
public void stop() {
System.out.println("手机停止工作……");
}
}
Camera类
package com.stulzl.interface_;
public class Camera implements UsbInterface{//实现接口
@Override
public void start() {
System.out.println("相机开始工作……");
}
@Override
public void stop() {
System.out.println("相机开始工作……");
}
}
Computer类
package com.stulzl.interface_;
public class Computer {
//编写一个方法,计算机工作
//解读:work形参是接口类型UsbInterface
//看到接收实现了UsbInterface接口的类的对象实例
public void work(UsbInterface usbInterface){
usbInterface.start();//调用接口方法
usbInterface.stop();
}
}
3. 接口基本介绍 403
接口就是给出一些没有实现的方法,封装到一 起,到某个类要使用的时候,在根据具体情况把这些
方法写出来。语法:
interface 接口名{
//属性
//抽象方法
}
class 类名 implements 接口{
自己属性:
自己方法;
必须实现的接口的抽象方法
}
小结:接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有
方法体jdk7.0。接口体现了程序设计的多态和高内聚低偶合的设计思想。特别说明: Jdk8.0后接口类可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现
代码在com.stulzl.interface_02.包中
测试Interface02
package com.stulzl.interface_02;
//接口基本介绍举例 403
public class Interface02 {
public static void main(String[] args) {
}
}
//解读
//如果一个类implements实现接口,需要将该接口的所有抽象方法实现
class A implements AInterface{
@Override
public void hi() {
}
}
接口AInterface
package com.stulzl.interface_02;
public interface AInterface {//接口
//属性
public int n1 = 10;
//方法
public void hi();//在接口中可以省略abstract关键字
//在jdk8以后,可以有默认实现方法,需要使用default关键字修饰
default public void ok(){
System.out.println("ok……");
}
//在jdk8以后,可以有静态方法(static)
public static void cry(){
System.out.println("cry……");
}
}
4. 接口深入讨论 404
4.1 举例 404
2个程序员,编写2个类,分别完成对Mysql,Oracle数据库的连接(统一使用使用connect,close方法)
代码在com.stulzl.interface_03.
测试Interface03
package com.stulzl.interface_03;
//2个程序员,编写2个类,分别完成对Mysql,Oracle数据库
// 的连接(统一使用使用connect,close方法)
public class Interface03 {
public static void main(String[] args) {
MysqlDB mysqlDB = new MysqlDB();
Interface03 interface03 = new Interface03();
interface03.t(mysqlDB);
Oracle oracle = new Oracle();
interface03.t(oracle);
}
//编写一个方法,调用接口
public void t(DBInterface db){
db.connect();
db.close();
}
}
接口DBInterface
package com.stulzl.interface_03;
public interface DBInterface {//接口 项目经理写
public void connect();//打开连接
public void close();//关闭连接
}
MysqlDB类
package com.stulzl.interface_03;
//A程序员写的
public class MysqlDB implements DBInterface{
@Override
public void connect() {
System.out.println("连接mysql");
}
@Override
public void close() {
System.out.println("关闭mysql");
}
}
Oracle类
package com.stulzl.interface_03;
//B程序员写的
public class Oracle implements DBInterface{
@Override
public void connect() {
System.out.println("打开oracle");
}
@Override
public void close() {
System.out.println("关闭oracle");
}
}
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
暂无评论,快来写一下吧
展开评论
您可能感兴趣的博客