欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

接口的简单应用——快递案例

程序员文章站 2022-06-13 18:08:53
...

接口的简单应用——快递案例

现在有三家快递公司:顺丰可以寄空运和陆运,EMS可以寄空运,圆通可以寄陆运。

现在小明想要通过这三家公司寄快递,请实现这一过程

分析:
1、类:人、顺丰、EMS、圆通
2、如何让人和快递公司产生联系,这个可以通过一个接口实现
而每家公司寄快递的功能不同,但是主要是两种,即陆运和空运
所以这里需要创建两个接口
3、总结:所以我们需要建立四个类和两个接口
   我们也可以理解为:人是主类,三家公司是副类(这种只是便于初    学者理解用)
4、人是通过传参和接口建立联系的,而三家公司主要是通过实现接口中的方法和接口建立联系的,这样就可以把人和快递公司建立联系
//建立实现陆运的接口
//功能是:实现陆运
//这个接口的名字我们命名为实现陆运服务
//而这个名字主要是给快递公司实现接口用,相当于快递公司提供
//了快递服务
public interface SnedPackageByLandService {
//实现陆运的功能
    void sendByLand();
}
//建立三个类,实现快递公司和接口之间的联系
//同理建立空运接口
public interface SnedPackageByAirService {
    void sendByAir();
}
//建立顺丰类
public class ShunFeng implements SnedPackageByAirService,SnedPackageByLandService {
//实现接口中的方法
    @Override
    public void sendByAir() {
        System.out.println("这个是顺丰空运");
    }

    @Override
    public void sendByLand() {
        System.out.println("这个是顺丰陆运");
    }
}
//建立EMS类
public class EMS implements SnedPackageByAirService {
//实现空运功能
    @Override
    public void sendByAir() {
        System.out.println("这个是EMS的空运");
    }
}

//建立圆通类
public class YuanTong implements SnedPackageByLandService{
//实现圆通的功能
    @Override
    public void sendByLand() {
        System.out.println("这个是圆通陆运");
    }
}

//建立人类,实现人与接口的联系
public class Person {
//在人类中(也就是主类)是建立方法和接口相联系的
    void sendPackageByLand(SnedPackageByLandService express){
    //而这个联系主要是通过接口类型来完成的,这里的类型用陆运接口 并且传入参数以便引用接口中的方法
        express.sendByLand();
    }
//同理实现空运
    void sendPackageByAir(SnedPackageByAirService express){
        express.sendByAir();
    }
}
//建立主函数来实现功能
public class Program {
    public static void main(String[] args) {
    //1、由于是静态的引用非静态的,所以先实例化
        ShunFeng shunFeng = new ShunFeng();
        EMS ems = new EMS();
        YuanTong yuanTong = new YuanTong();
        //2、实例化一个小明
        Person xiaoming = new Person();
        //3、实现功能
        //小明通过圆通陆运寄快递
        xiaoming.sendPackageByLand(yuanTong);
        //小明通过EMS空运寄快递
        xiaoming.sendPackageByAir(ems);

    }
}

注:深刻的理解可以对接口有更加深入的理解

相关标签: java