JAVA 接口 Interface 学习笔记 implements

原创 2016年05月30日 16:02:16
接口

接口特性
接口不可以被实例化
实现类必须实现接口的所有方法,否则实现类必须是抽象类
实现类可以实现多个接口,来弥补Java不能多继承
接口中的变量都是静态常量

public interface DemoInterface {    
public void demo();
 //其他方法 
//所有方法都是抽象的

}

如何使用接口

  
小结:接口的优点
可以被多继承
设计和实现完全分离
更自然的使用多态
更容易搭建程序框架
更容易更换实现

补充:常量




接口实例

业务员懂业务    程序员懂程序     工程师懂业务工程师懂程序







简单  继承+接口









生气生气
模拟打印机案例
墨盒:彩色、黑白
纸张类型:A4、B5
墨盒和纸张都不是打印机厂商提供的
打印机的打印功能需要使用兼容市场上的墨盒、纸张

package com.jerehedu.print;

public interface InkBox {
	
	void ink();

}

package com.jerehedu.print;

public interface PaperBox {
	
	void paper();
	
}
package com.jerehedu.print;

public interface PrintBox {
	
	void print(InkBox ink,PaperBox paper);
}

package com.jerehedu.print;

public class ColorInkBox implements InkBox {

	@Override
	public void ink() {
		// TODO Auto-generated method stub
		System.out.println("组装彩色墨盒");
	}

}

package com.jerehedu.print;

public class BlackInkBox implements InkBox {

	@Override
	public void ink() {
		// TODO Auto-generated method stub
		System.out.println("组装黑白墨盒");
	}

}
package com.jerehedu.print;

public class A4PaperBox implements PaperBox {

	@Override
	public void paper() {
		// TODO Auto-generated method stub
		System.out.println("放置A4纸");
	}

}
package com.jerehedu.print;

public class B5PaperBox implements PaperBox {

	@Override
	public void paper() {
		// TODO Auto-generated method stub
		System.out.println("放置B5纸");
	}

}
package com.jerehedu.print;

public class HupuPrintBox implements PrintBox {
	
	private InkBox ink;
	private PaperBox paper;
	
	public InkBox getInk() {
		return ink;
	}

	public void setInk(InkBox ink) {
		this.ink = ink;
	}

	public PaperBox getPaper() {
		return paper;
	}

	public void setPaper(PaperBox paper) {
		this.paper = paper;
	}

	@Override
	public void print(InkBox ink, PaperBox paper) {
		// TODO Auto-generated method stub
		setInk(ink);
		ink.ink();
		setPaper(paper);
		paper.paper();
		System.out.println("惠普打印机开始工作了");
	}

}
package com.jerehedu.print;

public class OtherPrintBox implements PrintBox {
	private InkBox ink;
	private PaperBox paper;
	
	public InkBox getInk() {
		return ink;
	}

	public void setInk(InkBox ink) {
		this.ink = ink;
	}

	public PaperBox getPaper() {
		return paper;
	}

	public void setPaper(PaperBox paper) {
		this.paper = paper;
	}

	@Override
	public void print(InkBox ink, PaperBox paper) {
		// TODO Auto-generated method stub
		setInk(ink);
		this.ink.ink();
		setPaper(paper);
		this.paper.paper();
		System.out.println("其他牌子的打印机开始工作了");
	}

}
package com.jerehedu.print;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//组装一个惠普彩色a4打印机
		ColorInkBox colorbox=new ColorInkBox();
		A4PaperBox a4box=new A4PaperBox();
		HupuPrintBox hupu=new HupuPrintBox();
		hupu.print(colorbox, a4box);
		//组装一个其他牌子的黑白b5打印机
		BlackInkBox blackbox=new BlackInkBox();
		B5PaperBox b5box=new B5PaperBox();
		OtherPrintBox other=new OtherPrintBox();
		other.print(blackbox, b5box);
	}

}



作者:冲天之峰    20160530







版权声明:本文为博主原创文章,未经博主允许不得转载。

java入门学习(11)—接口定义(interface)及使用(implements)

1、接口:一种把类抽象的更彻底,接口里只能包含抽象方法的“特殊类”。接口不关心类的内部状态数据,定义的是一批类所遵守的规范。(它只规定这批类里必须提供某些方法,提供这些方法就可以满足实际要求)。 定...
  • newly123
  • newly123
  • 2016年01月18日 15:59
  • 1935

回顾接口回调:Interface CallBack 两种简单小思维

接口回调两种写法: 1.单独接口 2.接口写在内部
  • nzfxx
  • nzfxx
  • 2016年09月13日 09:33
  • 1909

OnClickListener的不同用法

相信很多像我一样的新手学习ANDROID开发会遇到这个问题,通过这几天的归类和总结,将我的理解写在下面,欢迎大家一起前来讨论: 以按钮BUTTON的监听事件为例,以下的监听实现都是等价的: ...
  • kakaxi1o1
  • kakaxi1o1
  • 2013年10月04日 21:10
  • 15785

JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final ...
  • qq_26787115
  • qq_26787115
  • 2016年05月27日 21:54
  • 6863

java学习笔记-抽象类abstract与接口interface

/** * abstract 是修饰符可以修饰类,函数 * 当我们在多个类有相同功能的时候,而功能的主体不同,我们应该向上抽取只抽取功能的定义不抽取功能的主体 * 抽象类的特点: * 1.抽象...
  • cgq1030699125
  • cgq1030699125
  • 2016年02月29日 15:13
  • 458

Java面向对象高级--接口的基本概念--------interface、implements

1、接口: 接口是一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法(abstract)组成。 interface A{ // 定义接口A public stat...
  • waldmer
  • waldmer
  • 2013年09月25日 16:00
  • 1371

Java接口_interface_implements

相对抽象类来讲,接口就是比抽象类还要抽象的抽象类,丝毫不带半点实现的内容。 接口可以更加规范的对子类进行约束。 接口全面地专业地实现了:规范和具体实现的分离。 接口就是规范,定义的是一组规则,提现了现...
  • widenstage
  • widenstage
  • 2017年05月01日 07:50
  • 175

编程学习笔记之Java相关:接口(interface)的概念与使用

interface,意为接口,也被称为界面,是用来组织应用中的各个类并调节它们之间相互关系的一种结构,更准确的说,接口是用来类间多重继承功能的一种结构。 1):接口概述       Java中的接口在...
  • wenpinglaoyao
  • wenpinglaoyao
  • 2017年02月05日 16:39
  • 316

java个人学习笔记16(多线程+extends Thread+implements Runnable)

1.多线程 进程:正在运行的应用程序在内存中分配的空间 线程:是进程中负责程序执行的执行单元,也称执行路径  一个进程中至少有一个线程在负责该进程的运行 多线程技术:解决多部分代码同时执行的需...
  • m664151356
  • m664151356
  • 2014年03月22日 21:42
  • 532

TypeScript学习笔记之 接口(Interface)

在java中,接口是用来定义一些规范,使用这些接口,就必须实现接口中的方法,而且接口中的属性必须是常量。 javascript中是没有接口的概念的。 而TypeScript的核心之一就是类型检查。...
  • yuzhiqiang_1993
  • yuzhiqiang_1993
  • 2017年01月12日 15:42
  • 1162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA 接口 Interface 学习笔记 implements
举报原因:
原因补充:

(最多只允许输入30个字)