Java接口
程序员文章站
2022-06-13 21:29:22
...
什么是接口
在很多地方都有“接口”这个术语 :
1、电脑上的音频接口、网络接口、USB接口、HDMI接口
2、API : Application Programming Interface
3、UI : User Interface
4、两个不同的公司合作时,要互相指定接口人
…
本质上:当一个系统与另一个系统对接时,需定义接口
接口定义
定义一个名为AudioOutput的接口
public interface AudioOutput
{
//......
}
添加方法
添加名为play、stop的方法
public interface AudioOutput
{
public void play(AudioData samples);
public void stop();
}
规则:
1、不能写方法体
2、必须为public
3、不要添加属性(语法上可行,但没有意义)
使用接口
创建一个名为XiaoMi的类来实现AudioOutput接口
public class XiaoMi implements AudioOutput
{
@Override
public void play(AudioData samples)
{
}
@Override
public void stop()
{
}
}
接口与抽象类进行比较
接口与抽象类十分类似,区别在于:
1、用implements进行修饰,而不是extends,不表示继承关系
2、一个类可以implements多个接口
public class X extends Y implements A,B,C...
{
//......
}
3、接口和继承是两个不同的设计概念
接口的使用示例
1、定义一个Computer
2、当Computer不连接音箱时,Computer也可以正常工作(只是听不到声音)
3、当Computer连接音箱时,声音数据交给音箱来播放出来。
4、可以连接不同的音箱。
//Test.java 主方法的所在,程序运行的起点
package my;
public class Test
{
public static void main(String[] args)
{
Computer c = new Computer();//模拟一个电脑
// XiaoMi xiaomi = new XiaoMi();
// c.setAudioOutput(xiaomi);//电脑连接小米音箱
Edifier e = new Edifier();
c.setAudioOutput(e);//电脑连接漫步者音箱
c.playMovie("d:/test.mp4");
}
}
//AudioData.java (模拟)音频数据类
package my;
public class AudioData
{
}
//AudioOutput.java 音频接口
package my;
public interface AudioOutput
{
public void play (AudioData samples);
public void stop();
}
//XiaoMi.java 小米音箱类
package my;
public class XiaoMi implements AudioOutput
{
@Override
public void play(AudioData samples)
{
System.out.println("XiaoMi: di di di di ...");
}
@Override
public void stop()
{
}
}
//Edifier.java 漫步者音箱类
package my;
public class Edifier implements AudioOutput
{
@Override
public void play(AudioData samples)
{
System.out.println("漫步者: dadadada..");
}
@Override
public void stop()
{
}
}
//Computer.java 电脑类
package my;
public class Computer
{
// 音频播放接口
AudioOutput audioOutput;
public Computer()
{
}
// 连接输出设备
public void setAudioOutput(AudioOutput ao)
{
this.audioOutput = ao;
}
// 播放视频文件
public void playMovie(String file)
{
AudioData samples = new AudioData();
// 如果有输出设备, 则把声音数据交给设备播放
if(audioOutput != null)
{
audioOutput.play(samples);
}
}
}
上一篇: 该如何看待竞价推广的特性?
下一篇: 公司软文营销过程中 应该注意哪些问题