0
点赞
收藏
分享

微信扫一扫

dpdk——数据平面开发套件

夏侯居坤叶叔尘 2024-09-08 阅读 27

1.知识点

2.根据接口的举出语法的实例代码

3.接口的作用 (有无接口区别)

3.1实例代码

3.1.1无接口代码

public class Computer {
    //连接方法
    public void conn(HardDrive hardDrive){
        System.out.println("连接设备成功");
        hardDrive.read();
        hardDrive.write();
    }
}

public class HardDrive {
    public void read(){
        System.out.println("硬盘开始读数据");
    }
    public void write(){
        System.out.println("硬盘开始写数据");
    }
}

public class Test {
    public static void main(String[] args) {
        HardDrive hardDrive =  new HardDrive();
        Computer computer = new Computer();
        computer.conn(hardDrive);
    }

}

3.1.2接口代码

public class Computer {
    //连接方法
    public void conn(Usb usb){
        System.out.println("连接设备成功");
        usb.read();
        usb.write();
    }
}

public class Printer implements Usb {
    public void read(){
        System.out.println("打印机开始读数据");
    }
    public void write(){
        System.out.println("打印机开始打印了");
    }
}

public class HardDrive implements Usb {
    public void read(){
        System.out.println("硬盘开始读数据");
    }
    public void write(){
        System.out.println("硬盘开始写数据");
    }
}

//主程序
public class Test {
    public static void main(String[] args) {
        HardDrive hardDrive =  new HardDrive();
        Printer printer =  new Printer();
        Computer computer = new Computer();
        computer.conn(hardDrive);
        computer.conn(printer);
    }
}

 3.1.3例子代码

//接口
public interface Menu {
    void XiHongShiChaoDan();
    void YuXiangRouSi();
    void GongBaoJiDian();
}

//厨师一和厨师二
public class Cooker implements Menu{
    private String name;

    public Cooker(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void XiHongShiChaoDan() {
        System.out.println("西红柿炒蛋做好了");
    }

    @Override
    public void YuXiangRouSi() {
        System.out.println("鱼香肉丝做好了");
    }

    @Override
    public void GongBaoJiDian() {
        System.out.println("宫保鸡丁做好了");
    }
}

public class Cooker2 implements Menu{
    private String name;

    public Cooker2(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void XiHongShiChaoDan() {
        System.out.println("2西红柿炒蛋做好了");
    }

    @Override
    public void YuXiangRouSi() {
        System.out.println("2鱼香肉丝做好了");
    }

    @Override
    public void GongBaoJiDian() {
        System.out.println("2宫保鸡丁做好了");
    }
}

//顾客
package com.baidu.com.jia.jiekoushili;

/**
 * 顾客面向菜单点菜
 * */
public class Customer {
    public void order(Menu menu){
        //调用的都是接口中的方法,面向接口编程,面向抽象编程,降低程序耦合度,提高程序扩展力
        menu.GongBaoJiDian();
        menu.XiHongShiChaoDan();
        menu.YuXiangRouSi();
    }
}

//主程序
package com.baidu.com.jia.jiekoushili;

public class Test {
    public static void main(String[] args) {
        Cooker cooker = new Cooker("山东厨师");
        Customer customer = new Customer();
        Cooker2 cooker2 = new Cooker2("陕西厨师");
        customer.order(cooker);
    }
}

接口与抽象类如何选择

举报

相关推荐

0 条评论