zoukankan      html  css  js  c++  java
  • 2019-2-18

    1、在JAVA中,继承只能是单继承,一个子类只能有一个父类

    2、接口特性:

      A、接口不可以被实例化

      B、实现类必须实现接口的所有方法

      C、实现类可以实现多个接口

        implement、多个接口使用逗号隔开

      D、接口中的变量都是静态常量(public static final)

    3、抽像类和接口的区别

      相同点:抽象类和接口都不能被实例化对象

          抽象类和接口都可以有抽象方法

          子类必须重写其所有的抽象方法,除非子类也是抽象类

      不同点:抽象类中可以有普通方法,接口中只能有抽象方法(jdk1.8之前 )

          抽象类中可以有普通成员变量,接口中只能有静态常量

          抽象类只能被单继承,接口可以被多实现

     作业:

    1、使用接口实现手机,原始手机可以发短信,通电话。随着发殿,手机增加了功能:音频、视频播放、拍照、上网。

    package com.java_18_phone;
    /**
     * 手机类
     * @author Administrator
     *
     */
    public abstract class Phone {
    	private String brand;
    	private String type;
    	
    	public String getBrand() {
    		return brand;
    	}
    	public void setBrand(String brand) {
    		this.brand = brand;
    	}
    	public String getType() {
    		return type;
    	}
    	public void setType(String type) {
    		this.type = type;
    	}
    	
    	public abstract void print();
    	
    	public abstract void send();
    
    	public abstract void call();
    }
    

      

    package com.java_18_phone;
    
    public interface Line {
    	public void line();
    }
    

      

    package com.java_18_phone;
    
    public interface Photo {
    	public void photo();
    }
    

      

    package com.java_18_phone;
    
    public interface Play {
    	public void play();
    }
    

      

    package com.java_18_phone;
    /**
     * 普通手机类
     * @author Administrator
     *
     */
    public class Common extends Phone implements Play {
    
    	@Override
    	public void play() {
    		// TODO Auto-generated method stub
    		System.out.println("播放音频..");
    	}
    
    	@Override
    	public void send() {
    		// TODO Auto-generated method stub
    		System.out.println("正在发送文字信息...");
    	}
    
    	@Override
    	public void call() {
    		// TODO Auto-generated method stub
    		System.out.println("正在打电话...");
    	}
    
    	@Override
    	public void print() {
    		// TODO Auto-generated method stub
    		System.out.println("这是一款型号为"+super.getType()+"的"+super.getBrand()+"手机:");
    	}
    
    }
    

      

    package com.java_18_phone;
    /**
     * 智能手机类
     * @author Administrator
     *
     */
    public class Capacity extends Phone implements Line, Photo,Play {
    
    	@Override
    	public void photo() {
    		// TODO Auto-generated method stub
    		System.out.println("拍照成功..");
    	}
    
    	@Override
    	public void line() {
    		// TODO Auto-generated method stub
    		System.out.println("已经连网..");
    	}
    
    	@Override
    	public void send() {
    		// TODO Auto-generated method stub
    		System.out.println("发送带图片与文字的信息...");
    	}
    
    	@Override
    	public void call() {
    		// TODO Auto-generated method stub
    		System.out.println("开启视频通话...");
    	}
    
    	@Override
    	public void play() {
    		// TODO Auto-generated method stub
    		System.out.println("正在播放视频《小时代》...");
    	}
    
    	@Override
    	public void print() {
    		// TODO Auto-generated method stub
    		System.out.println("这是一款型号为"+super.getType()+"的"+super.getBrand()+"智能手机:");
    	}
    
    }
    

      

    package com.java_18_phone;
    
    public class Test {
    	public static void main(String[] args) {
    		Common p = new Common();
    		p.setBrand("爱国者");
    		p.setType("G555");
    		p.print();
    		p.call();
    		p.send();
    		p.play();
    		
    		System.out.println();
    		Capacity c = new Capacity();
    		c.setBrand("炎火");
    		c.setType("J666");
    		c.print();
    		c.line();
    		c.photo();
    		c.call();
    		c.send();
    		c.play();
    	}
    }
    

      测试结果:

    2、使用接口组装一台计算机:CPU、硬盘、内存

    package com.cpu;
    /**
     * CPU
     * @author Administrator
     *
     */
    public interface Cpu {
    	
    	public String type();
    	
    	public double basic();
    
    }
    

      

    package com.cpu;
    
    public class AmdCpu implements Cpu {
    
    	public String type() {
    		return "AMD";
    	}
    
    	public double basic() {
    		return 3.8;
    	}
    }
    

      

    package com.cpu;
    
    public class InterCpu implements Cpu {
    
    	public String type() {
    		return "Inter";
    	}
    
    	public double basic() {
    		return 2.4;
    	}
    }
    
    package com.hard;
    /**
     * 硬盘
     * @author Administrator
     *
     */
    public interface Hard {
    	
    	public String type();
    	
    	public int capacity();
    }

      

    package com.hard;
    
    public class XiJie implements Hard {
    	
    	public String type() {
    		return "希捷";
    	}
    
    	public int capacity() {
    		return 750;
    	}
    }
    

      

    package com.hard;
    
    public class XiShu implements Hard {
    
    	public String type() {
    		return "西数";
    	}
    
    	public int capacity() {
    		return 500;
    	}
    }
    

      

    package com.memory;
    /**
     * 内存
     * @author Administrator
     *
     */
    public interface Memory {
    	
    	public String type();
    	
    	public int size();
    }
    

      

    package com.memory;
    
    public class JinShiDun implements Memory {
    
    	public String type() {
    		return "金士顿";
    	}
    
    	public int size() {
    		return 8;
    	}
    }
    

      

    package com.memory;
    
    public class SanXing implements Memory {
    
    	public String type() {
    		return "三星";
    	}
    
    	public int size() {
    		return 16;
    	}
    }
    

      

    package com.computer;
    
    import com.cpu.Cpu;
    import com.hard.Hard;
    import com.memory.Memory;
    
    public class Computer {
    	private Cpu c;
    	private Hard h;
    	private Memory m;
    	public Cpu getC() {
    		return c;
    	}
    	public void setC(Cpu c) {
    		this.c = c;
    	}
    	public Hard getH() {
    		return h;
    	}
    	public void setH(Hard h) {
    		this.h = h;
    	}
    	public Memory getM() {
    		return m;
    	}
    	public void setM(Memory m) {
    		this.m = m;
    	}
    	
    	public void info() {
    		System.out.println("这台电脑的配置是:");
    		System.out.println("CPU型号:"+c.type()+",主频是:"+c.basic()+"Hz");
    		System.out.println("硬盘型号:"+h.type()+",容量是:"+h.capacity()+"G");
    		System.out.println("内存型号:"+m.type()+",大小是:"+m.size()+"G");
    	}
    }
    

      

    package com.computer;
    
    import com.cpu.Cpu;
    import com.cpu.InterCpu;
    import com.hard.Hard;
    import com.hard.XiJie;
    import com.memory.Memory;
    import com.memory.SanXing;
    
    public class Test {
    	public static void main(String[] args) {
    		Computer cc = new Computer();
    		Cpu cpu = new InterCpu();
    		Hard hard = new XiJie();
    		Memory memory = new SanXing();
    		cc.setC(cpu);
    		cc.setH(hard);
    		cc.setM(memory);
    		cc.info();
    	}
    }
    

      测试结果:

     

  • 相关阅读:
    排序算法-总览
    MySQL插入大批量测试数据
    【剑指offer】面试的流程
    并发编程-内置锁
    并发编程-使用线程安全类
    规约先行-(二十一)设计规约
    规约先行-(二十)服务器
    [转]web.xml什么时候被加载进内存的
    DOM和BOM的理解
    代理&反向代理
  • 原文地址:https://www.cnblogs.com/chenxj/p/10394863.html
Copyright © 2011-2022 走看看