インタフェースはまた、当社の実際の生活の中で、2つの一見無関係に見える事がインタフェースに接続されている存在します。およびJava抽象クラスインターフェースは、特別に、二つの異なるモジュールは、コンテンツインターフェースを介して接続され、互いに接続することができ、変更より便利です
今、USBインタフェースを書いて想像し、ユーザーがコンピュータのもののキーボードとマウスを接続することができます。
まずUsbのインタフェースを記述Usb
。プリント抽象メソッドとクリックの方法、キーボードやマウスクリックの代表者、彼に利用可能な2つの方法があるインタフェースを持つすべてのユーザーがあります。
interface Usb{
void print();
void click();
}
達成するために、あるユーザがキーボードやマウスを使用する必要があり、その後、ユーザー1を接続する第一のクラスのユーザインターフェイスを書き込み、後に器具をコンテンツインタフェース、次に抽象メソッドを書き換える(内部インタフェースが抽象メソッドである、抽象メソッドを書き換えなければなりません)、彼はまだ、キーボード上でマウスの左ボタンをクリックして入力しています
class User1 implements Usb{
//重写抽象方法
public void print(){
System.out.println("键盘输入:博客没人看");
}
public void click(){
System.out.println("点了一下鼠标左键!");
}
}
その複数のユーザーがキーボードとマウスを使用することができ、インターフェイスは、物事の数に接続することができる証明するために、第二のユーザUser2のを書き、彼のキーボードとマウスとは異なり、コンテンツとユーザー1をクリックし、抽象メソッドを書き換えても異なっています。
class User2 implements Usb{
//重写抽象方法和前一个用户不同
public void print(){
System.out.println("键盘输入了:我是用户2");
}
public void click(){
System.out.println("我点了鼠标右键");
}
}
今、外部インターフェースは、その後、私のコンピュータのもう一方の端への書き込みインターフェースは、コンピュータのインターフェイスは、どのようなインターフェースのメソッドを知っているし、再びそれらを呼び出すために、このプロパティを含めるために、2人のユーザーが存在し、よく書かれています。そして、一般的なアプローチのメイクを設定し、すべての方法は、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();
}
}