JAVA 接口是不是就像一个标准,一个规范?
Java中的类继承,可以使子类用到父类的方法、字段,多态,实现代码重用。接口除了可以多个外,和继承差不多吧?但是接口里的方法都没有具体实现,具体怎么做还是得程序员自己搞。...
Java中的类继承,可以使子类用到父类的方法、字段,多态,实现代码重用。接口除了可以多个外,和继承差不多吧?但是接口里的方法都没有具体实现,具体怎么做还是得程序员自己搞。这和直接在自己的类中写方法有什么区别?
除了经常说的“使用和实现分离”这种松耦合目的外,是不是接口就像是一个标准、规范?如果定义一个接口,有人用到时就必须实现里面的所有方法,这些方法名、参数,都是事先定好的,避免了做同一个事的方法却一个程序员定义一个名称所造成的混乱?强制进行“约定俗成”,使代码统一? 展开
除了经常说的“使用和实现分离”这种松耦合目的外,是不是接口就像是一个标准、规范?如果定义一个接口,有人用到时就必须实现里面的所有方法,这些方法名、参数,都是事先定好的,避免了做同一个事的方法却一个程序员定义一个名称所造成的混乱?强制进行“约定俗成”,使代码统一? 展开
4个回答
展开全部
接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起。以上像一段绕口令,那么通过下面的几段程序解释:
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++中遗留的多继承中出现的问题。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
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++中遗留的多继承中出现的问题。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
展开全部
的确,可以这么说
通常做项目时,必须要有一些基础工具类。
编写基础类的人只要告诉别人,这些类有什么用就可以了,这样就能实现代码的统一。
如果需要改变基础类的方法实现,只要改这一个类就可以。
而如果,基础类针对不同情况,方法的实现有所不同的话,那就需要用接口来解决了。
接口只定义了方法,告诉别人要用这个方法名,需要这些参数,有这种返回值,具体实现你得自己写。
通常做项目时,必须要有一些基础工具类。
编写基础类的人只要告诉别人,这些类有什么用就可以了,这样就能实现代码的统一。
如果需要改变基础类的方法实现,只要改这一个类就可以。
而如果,基础类针对不同情况,方法的实现有所不同的话,那就需要用接口来解决了。
接口只定义了方法,告诉别人要用这个方法名,需要这些参数,有这种返回值,具体实现你得自己写。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从程序员的角度理解:
接口是给领导看的,告诉领导我实现的什么功能
从领导的角度理解:
接口是用来规范程序员必须要实现哪些功能
接口是给领导看的,告诉领导我实现的什么功能
从领导的角度理解:
接口是用来规范程序员必须要实现哪些功能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不同角度有不同理解!随著干的时间增加理解也不一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询