zoukankan      html  css  js  c++  java
  • 20150122--接口

    package com.hanqi.computer;
    
    public interface ICpu {
        
        public void yunSuan();
        
        public String getPinpai();
        
        
    }
    ICpu
    package com.hanqi.computer;
    
    public class AMDCpu implements ICpu,IDisplay {
    
        @Override
        public void yunSuan() {
            
            System.out.println("我的运算速度也不错");
            
        }
    
        @Override
        public String getPinpai() {
            
            return "AMD";
        }
    
        @Override
        public void xianShi() {
            
            System.out.println("APU");
            
        }
    
    }
    AMDCpu
    package com.hanqi.computer;
    
    public class Computer {
        
        private ICpu cpu;
        private IDisplay display;
        
        
        public ICpu getCpu() {
            return cpu;
        }
        public void setCpu(ICpu cpu) {
            this.cpu = cpu;
        }
        public IDisplay getDisplay() {
            return display;
        }
        public void setDisplay(IDisplay display) {
            this.display = display;
        }
    
        
        public void run()
        {
            System.out.println("Cpu品牌 = " + cpu.getPinpai());
            System.out.println(" 显卡品牌 = " + display.getPinpai());
            
            cpu.yunSuan();
            
            display.xianShi();
        }
        
        
    }
    Computer
    package com.hanqi.computer;
    
    public interface IDisplay {
        
        public void xianShi();    //    public 可不写 默认
        
        public String getPinpai();
        
        
        
    }
    IDisplay
    package com.hanqi.computer;
    
    public class IntelCpu implements ICpu {
    
        @Override
        public void yunSuan() {
    
            System.out.println("我的运算速度很快");
            
        }
    
        @Override
        public String getPinpai() {
            
            return "Intel";
        }
    
    }
    IntelCpu
    package com.hanqi.computer;
    
    public class Ti960Display implements IDisplay {
    
        @Override
        public void xianShi() {
            
            System.out.println("显示图形");
    
        }
    
        @Override
        public String getPinpai() {
            
            return "英伟达";
        }
    
    }
    Ti960Display
    package com.hanqi.computer;
    
    public class ZuZhuang {
    
        public static void main(String[] args) {
            
            //组装一台电脑
            Computer c1 = new Computer();
            
            ICpu intel = new IntelCpu();
            
            c1.setCpu(intel);                    //有名对象
            c1.setDisplay(new Ti960Display());    //匿名对象
            
            c1.run();
    
            Computer c2 = new Computer();
            
    //        AMDCpu a = new AMDCpu();
            
            LongXin a = new LongXin2();
            
            c2.setCpu(a);
            c2.setDisplay(a);
            
            c2.run();
        }
    
    }
    ZuZhuang
    package com.hanqi.computer;
    
    public interface ICpuDisplay extends ICpu, IDisplay {
        
    }
    ICpuDisplay
    package com.hanqi.computer;
    
    public abstract class LongXin implements ICpuDisplay {
    
        @Override
        public void yunSuan() {
            
            System.out.println("可以运算了");
    
        }
    
        @Override
        public String getPinpai() {
            
            return "龙芯";
        }
    
        @Override
        public abstract void xianShi();            //定义一个抽象方法
    }
    LongXin
    package com.hanqi.computer;
    
    public class LongXin2 extends LongXin {
    
        @Override
        public void xianShi() {
            System.out.println("可以显示");
    
        }
    
    }
    LongXin2

  • 相关阅读:
    MySQL++:(转)mybatis 常用 jdbcType数据类型
    CF1556F Sports Betting (状压枚举子集DP)
    ICPC Greater New York Region 2020 F
    post方式实现导出/下载文件
    自定义一个v-if
    在vue项目中引用element-ui时 让el-input 获取焦点的方法
    element-select当下拉框数据过多使用懒加载
    vue强制刷新组件更新数据的方式
    .net core efcore dbfirst(sqlserver,mysql,oracle,postgresql)
    camunda安装配置mysql以及整合springboot
  • 原文地址:https://www.cnblogs.com/name-hanlin/p/5152442.html
Copyright © 2011-2022 走看看