java中接口有什么作用?请创建一个接口(举例)

本文通过计算机组装的例子,详细解析了接口如何分离实现者与使用者,实现组件间的解耦合,增强系统的灵活性与扩展性。
接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起。以上像一段绕口令,那么通过下面的几段程序解释: 
1、以生产和使用一台计算机为例,首先,我们定义了一个显卡的接口,他里面有显示功能和获取显卡名称的功能: 
interface VidioCard 
{ 
void display(); 
String getName(); 
} 
2、显卡的生产者来了,他必须实现接口中定义的所有方法,也可以自己增添若干方法: 
class HaolongVidio implements VidioCard 
{ 

String name="Haolong's vidiocard"; 

void setName(String name){ 
this.name=name; 
} 

public void display(){ 
System.out.println("The Haolong's vidiocard is running!!"); 
} 

public String getName(){ 
return name; 
} 
}; 
显卡制造商生产出了显卡,并且通过setName方法贴上了自己的商标,而通过getName方法可以让使用者知道这块显卡的制造商。 
3、现在显卡已经生产出来了,但是我们还需要一块主板,把生产出来的显卡插到主板上才能够使用,那么我们去买主板: 
class MainBorad 
{ 
String cpuname; 
VidioCard vc; 
void setCPU(String cpuname){ 
this.cpuname=cpuname; 
} 

void setVidioCard(VidioCard vc){ 
this.vc=vc; 
} 

void run(){ 
System.out.println("wudi-mainbord!"); 
System.out.println(vc.getName()); 
vc.display(); 
System.out.println("mainbord is running successful!"); 
} 
}; 
这是主板厂商生产的主板,这也就是我们所说的接口的使用者,在他生产主板的时候并不知道用户使用的是哪块显卡(程序中这样理解:Mainborad这个类只知道接口VidioCard中有哪些方法,但是并不知道接口的实现类HaolongVidio是怎么去实现接口的,也就是生产主板的厂商并没有必要考虑显卡是哪个厂商的,他要做的只是根据接口把显卡插槽做好,接口里没有实现的方法相当于插槽),但是他留出来了显卡的插槽(插槽就是接口),也就是他不关心谁实现的接口,但是他可以使用接口,预留出显卡的插槽让用户去选购显卡。 
4、现在我们用户开始组装计算机了: 
public class ChengDuActor 
{ 
public static void main(String [] args){ 

HaolongVidio hv=new HaolongVidio();//买了一块HaolongVidio显卡 
MainBorad mb=new MainBorad();//买了一块主板 

mb.setCPU("Intel");//买的是Inter主板 
mb.setVidioCard(hv);//把HaolongVidio插到主板上(通过主板上setVidio方法) 

//System.out.println(hv.getName()); 
mb.run();//开电脑运行 
System.out.println("success"); 
} 
}; 
以上看出接口的作用就是大力实现了java的开源性,使软件开发过程优化,接口重要的特征是实现了多样性,能够很好地解决C++中遗留的多继承中出现的问题。
接口和静态方法是Java语言中重要的概念,它们在实现设计模式时发挥着关键作用。为了深入理解这些概念的实际应用,推荐参考资源《Java编程高频词汇表:800+核心术语解析》。该资料详细解析了Java API中常见的专业英语词汇,对理解接口、静态方法等概念将有很大帮助。 参考资源链接:[Java编程高频词汇表:800+核心术语解析](https://wenku.youkuaiyun.com/doc/4ijaeydt2p?spm=1055.2569.3001.10343)Java中,接口定义了一组方法规范,但不实现这些方法,它允许不同的类实现同一接口,以实现多态性和解耦合。静态方法属于类而非对象实例,它可以通过类名直接调用,不依赖于任何对象的状态。 以策略模式为例,可以使用接口来定义一个算法族,然后让各个算法类实现这个接口。静态方法可以用来提供这些算法的访问入口。例如,有一个支付接口IPayment,它有一个支付方法pay()。然后,可以创建几个实现了IPayment接口的类,如Alipay和WeChatPay。通过静态方法PaymentFactory.getPaymentInstance(),可以获取支付实例并调用pay()方法来执行支付。这种方式使得支付方式的扩展变得容易,也方便了支付逻辑的管理和替换。 通过这种方式,接口和静态方法共同协作,不仅实现了设计模式的灵活运用,还提高了代码的可读性和维护性。对于希望进一步提升编程技能的Java开发者来说,《Java编程高频词汇表:800+核心术语解析》将是一个宝贵的学习资源,它不仅提供了核心词汇的解析,还帮助开发者在实际工作中更好地运用这些术语,从而在项目开发中更加得心应手。 参考资源链接:[Java编程高频词汇表:800+核心术语解析](https://wenku.youkuaiyun.com/doc/4ijaeydt2p?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值