인터페이스는 또한 우리의 현실에서, 두 관련이 없어 보이는 일들이 인터페이스를 연결되어 존재한다. 그리고 자바 추상 클래스의 인터페이스는 특별한이, 두 개의 서로 다른 모듈이 컨텐츠 인터페이스를 통해 연결되어 함께 연결할 수 있습니다, 수정 더 편리합니다
이제 USB 인터페이스를 작성하는 상상, 사용자는 컴퓨터 물건의 키보드와 마우스를 연결할 수 있습니다.
첫 번째는 USB 인터페이스를 쓰기 Usb
. 인쇄 추상적 인 방법 및 클릭하는 방법이 있습니다, 키보드와 마우스 클릭의 대표자는 그에게 두 가지 방법은 인터페이스를 사용자가있는 경우.
interface Usb{
void print();
void click();
}
사용자가 키보드와 마우스를 사용할 필요가 후, 다음 최고 수준의 사용자 인터페이스 인 사용자 1을 연결 달성하기 위해 쓰기 구현을 , (내부 인터페이스는 추상 메소드를 다시 작성해야합니다, 추상적 인 방법입니다) 내용 인터페이스, 다음 추상 메소드를 다시 작성 그는 여전히 키보드에서 마우스 왼쪽 버튼을 클릭하여 입력됩니다
class User1 implements Usb{
//重写抽象方法
public void print(){
System.out.println("键盘输入:博客没人看");
}
public void click(){
System.out.println("点了一下鼠标左键!");
}
}
그 이상의 사용자가 두 번째 사용자 사용자 2 쓰기, 키보드와 마우스, 즉, 인터페이스는 여러 가지에 연결할 수 있습니다 사용할 수 있습니다 보여주기 위해, 자신의 키보드와 마우스 클릭의 콘텐츠와 사용자 1과 다른 추상적 인 방법도 다르다 재 작성.
class User2 implements Usb{
//重写抽象方法和前一个用户不同
public void print(){
System.out.println("键盘输入了:我是用户2");
}
public void click(){
System.out.println("我点了鼠标右键");
}
}
이제 외부 인터페이스는 내 컴퓨터의 다른 쪽 끝을 쓰기 인터페이스, 컴퓨터 인터페이스는 어떤 인터페이스 방법을 알고 다시 호출이 속성을 포함, 두 명의 사용자가 음을 기록하고있다. 그런 다음 모든 방법은 USB 인터페이스를 호출 할 수 있습니다, 일반적인 접근 메이크업을 설정합니다.
class MyComputer{
//封装一个属性
private Usb usb;
//给一个有参数构造方法,参数需要是Usb类型
public MyComputer(Usb usb) {
this.usb = usb;
}
//对private设置get和set方法
public Usb getUsb() {
return usb;
}
public void setUsb(Usb usb) {
this.usb = usb;
}
//设置一个make方法,代表电脑可以通过Usb实现Usb内部的两个方法
public void make(){
//同一个类中不需要用get和set方法
//也可以加上Usb usb = this.getUsb();
usb.print();
usb.click();
}
}
컴퓨터 내 컴퓨터는이 쪽도 마침내 그것을 테스트 할 수있는 테스트 파일을 완성하고있다. 인터페이스 신발의 콘텐츠를 통해이 개정안은 다른 서브 클래스 객체에 매우 편리하고, 단지의 USB 참조, 내 컴퓨터의 USB 매개 변수, 구현 호출 방법을 개체를 받아, 포인트를 작성하여 다음 참조입니다.
public class PortTest06 {
public static void main(String[] args) {
//创建Usb引用a,父类型引用指向子类型对象User1
Usb a = new User1();
//创建电脑对象
//这里传进去参数a,a是一个Usb类型数据
MyComputer b = new MyComputer(a);
//总方法make实现User1提供的两个方法
b.make();
//在创建一个Usb引用x,指向子类型对象User2
Usb x = new User2();
//创建电脑对象,传进去的是x
MyComputer y = new MyComputer(x);
//总方法make实现User2提供的两个方法
y.make();
}
}