zoukankan      html  css  js  c++  java
  • 面向对象第6课——多态——接口

    								   		//interface接口课件
    package jiekou;
    //cpu接口
    //关键字interface(与class平级)
    //接口就是一套规范,其他的按照这个规范实现(由子类实现才可以使用)
    public interface Icpu {
    	
    	//抽象方法
    	//默认由public abstract修饰
    	public abstract void run();
    	//常量
    	//默认修饰符public static final
    	public static final double PI=3.14;
    }
    
    
    
    package jiekou;
    
    
    //实现接口implements
    public class Inter implements Icpu {
    	@Override
    	//实现接口的方法,run未完成的继承方法。
    	public void run() {	
    		System.out.println("intel的cpu在运行");
    	}
    }
    
    
    
    package jiekou;
    
    //implements,子类必须实现接口所有的抽象方法才能实例化
    public class AMD implements Icpu {
    
    	@Override
    	public void run() {
    		System.out.println("AMD的cpu在运行");
    		
    	}
    }
    
    
    package jiekou;
    
    public class computer {
    
    	//cpu
    	private Icpu cpu;//变量类型为接口类型,相当于了变量cpu继承了Icpu所有的属性和方法,相当于用cpu实例化了Icpu。
    
    	public Icpu getCpu() {
    		return cpu;
    	}
    	public void setCpu(Icpu cpu) {
    		this.cpu = cpu;
    	}
    	//造一个方法,开机
    	public void onPower()
    	{
    		//cpu开始运行
    		cpu.run();//调用接口方法run。
    //		System.out.println(cpu.PI);
    	}
    }
    
    
    
    package jiekou;
    
    public class Icputset {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		computer pc=new computer();//用pc实例化computer类,建立pc对象
    		Inter y=new Inter();//用y实例化Inter,建立inter的对象y。
    		pc.setCpu(y);
    		pc.onPower();
    		//匿名对象
    //		pc.setCpu(new Inter());
    //		pc.onPower();
    		
    		
    		computer pc2=new computer();
    //		Inter abc=new Inter;
    		//匿名对象
    		pc2.setCpu(new AMD());
    		pc2.onPower();
    	}
    }
    //接口总结
    //定义:interface,与class平级
    //接口只有抽象方法和常量值;
    //特点:特殊的抽象类,只包含常量和抽象方法,接口与抽象类一样不可以实例化。
    //作用是定义一种规范	
    //所有成员变量默认由public final static修饰。
    //所有方法默认由public abstract修饰
    //只有抽象方法和常量,无构造方法。
    //一个类可以实现多个接口。
    //接口可以宽展下一个或者多个接口,建立成interface形式,用extends继承上个接口。
    

      

  • 相关阅读:
    nginx负载均衡
    saltstack高效运维
    nginx入门与实战
    web service基础知识
    centos tomcat解压版安装
    centos yum 安装jdk1.7
    centos7安装opencv3.4.1(同样适用于最新版本4.2.0)
    正向代理与反向代理,正向代理与反向代理的应用
    MySQL日期 字符串 时间戳互转
    idea svn提交时,performing vcs refresh时间很长的解决办法
  • 原文地址:https://www.cnblogs.com/zhangnaitao/p/5907939.html
Copyright © 2011-2022 走看看