JAVA面向接口编程

来源:互联网 发布:淘宝装 编辑:程序博客网 时间:2024/05/17 08:47

1. 接口是一种规范和标准,是一些方法特征的集合,但没有方法实现。

2.抽象类利于代码复用,接口利于代码的扩展和维护。

3.接口中只有全局静态常量和全局静态抽象方法。常量必须有初始值。

4.接口之间可以通过extends实现继承关系,一个接口可继承多个接口。

面向接口编程

组装电脑面向接口编程。

CPU接口

public interface Cpu {    /*     * 获取CPU品牌     */    public String getCpuCount();    /*     * 获取CPU主频     */    public Double getFrequery();}

内存接口

public interface EMS {    /*     * 内存类型     */    public String getEmsType();    /*     * 获取内存容量大小     */    public int getSize();}

硬盘接口

public interface HardDisk {    /*     * 获取硬盘大小     */    public int getCapacity();}

因特尔CPU实现类

public class IntelCPU implements Cpu{    @Override    public String getCpuCount() {        // TODO Auto-generated method stub        return "Intel";    }    @Override    public Double getFrequery() {        // TODO Auto-generated method stub        return    3.5;    }   }

英伟达CPU实现类

public class NVIDIACPU implements Cpu {    @Override    public String getCpuCount() {        // TODO Auto-generated method stub        return "英伟达CPU";    }    @Override    public Double getFrequery() {        // TODO Auto-generated method stub        return 6.7;    }}

金士顿内存实现类

public class JSangDunEMS implements EMS {    @Override    public String getEmsType() {        // TODO Auto-generated method stub        return "DDR4";    }    @Override    public int getSize() {        // TODO Auto-generated method stub        return 16;    }}

三星内存条实现类

public class SanSumgEMS implements EMS {    @Override    public String getEmsType() {        // TODO Auto-generated method stub        return "DDR3";    }    @Override    public int getSize() {        // TODO Auto-generated method stub        return 8;    }}

三星硬盘实现类

public class SaanSumgHardDisk implements HardDisk {    @Override    public int getCapacity() {        // TODO Auto-generated method stub        return 600;    }}

希捷硬盘实现类

public class XJieHardDisk implements HardDisk{    @Override    public int getCapacity() {        // TODO Auto-generated method stub        return 800;    }}

电脑信息描述类

public class Install {    Cpu cpu;    EMS ems;    HardDisk hard;    public Install(Cpu cpu, EMS ems, HardDisk hard) {        this.cpu = cpu;        this.ems = ems;        this.hard = hard;    }    public void setCpu(Cpu cpu) {        this.cpu = cpu;    }    public void setEms(EMS ems) {        this.ems = ems;    }    public void setHard(HardDisk hard) {        this.hard = hard;    }    /*     * 组装方法     */    public void packaing(){        System.out.println("该计算机的CPU是"+cpu.getCpuCount()        +"的,它的主频是"+cpu.getFrequery()        +"\n它的内存类型为:"+ems.getEmsType()        +",它的内存容量大小为"+ems.getSize()        +"KB"+"\n它的硬盘容量为"+hard.getCapacity());    }}

电脑组装类

public class ComputerInstallTest {    public static void main(String[] args) {        Cpu cpu=null;        EMS ems=null;        HardDisk hard=null;             Install ins=new Install(cpu, ems, hard);        /*         * 使用intelcpu,三星内存,三星硬盘组装         */        cpu=new IntelCPU();        ins.setCpu(cpu);        ems=new SanSumgEMS();        ins.setEms(ems);        hard=new SaanSumgHardDisk();        ins.setHard(hard);        ins.packaing();        /*         * 使用英伟达cpu,金士顿内存,希捷硬盘组装         */        cpu=new NVIDIACPU();        ins.setCpu(cpu);        ems=new JSangDunEMS();        ins.setEms(ems);        hard=new XJieHardDisk();        ins.setHard(hard);        ins.packaing();    }       }
原创粉丝点击