java中接口有什么作用?

59 篇文章 0 订阅

接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起。以上像一段绕口令,那么通过下面的几段程序解释:


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++中遗留的多继承中出现的问题。



接口(Interface)是Java语言的一种引用类型,它是一种抽象类型,是抽象方法的集合,没有方法体。接口只定义规范,具体实现由实现接口的类来完成。接口可以看作是一种特殊的抽象类,其成员变量默认为常量,方法默认为抽象方法。 接口作用主要有以下几个方面: 1. 定义了一种规范,使得实现接口的类具有一定的统一性; 2. 实现接口的类可以在不改变原有代码的基础上,实现某些功能; 3. 接口可以被多个类实现,实现了接口的类可以被看作是同一类型,便于统一处理; 4. 接口可以解决Java单继承的问题,一个类可以实现多个接口接口的特点包括以下几个方面: 1. 接口的方法都是抽象方法,没有方法体; 2. 接口的成员变量都是公共的、静态的、不可修改的常量; 3. 接口不能定义构造方法; 4. 接口的方法默认为public,可以省略修饰符。 5. 接口可以继承其他接口,形成接口之间的继承关系。 接口不能写构造方法,因为接口的成员变量都是常量,没有状态,也没有实例化的概念,因此构造方法在这里没有意义。 接口与抽象类的区别主要有以下几个方面: 1. 抽象类可以有构造方法,接口不能有构造方法; 2. 抽象类可以有成员变量,接口只能有常量; 3. 抽象类的方法可以有方法体,接口的方法不能有方法体; 4. 一个类只能继承一个抽象类,但可以实现多个接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值