接口

奋斗吧
奋斗吧
擅长邻域:未填写

标签: 接口 Java博客 51CTO博客

2023-05-12 18:24:14 88浏览

接口,1. 为什么有接口2. 接口快速入门  402这样的设计需求在java编程/php/.net/go中也是会大量存在的,我曾经说过, 个程序就是一个世界,在现实世界存在的情况,在程序中也会出现。我们用程序来模拟一下(上图)代码在com.stulzl.interface_.包中测试Interface01packagecom.stulzl.interf

1. 为什么有接口

接口_ide

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

接口_ide_02

4.1 举例   404

2个程序员,编写2个类,分别完成对Mysql,Oracle数据库的连接(统一使用使用connect,close方法)

接口_ide_03

代码在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展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695