永发信息网

什么时候用接口(interface),接口是用来做什么的

答案:6  悬赏:0  手机版
解决时间 2021-11-20 19:15
  • 提问者网友:原来太熟悉了会陌生
  • 2021-11-19 19:40
什么时候用接口(interface),接口是用来做什么的
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-11-19 20:35
接口:

我理解是用在一个用于被继承或实现得方法(也就是一个很父类得方法 这个方法并不明确得写出是做得什么)

要达到面向对象开发和设计中 低耦合 的要求.

例如:有些东西需要经常更换
可以在接口得实现方法中写出 所需更换得方法...
在定义一个工厂用于 返回 具体需要得方法是什么
在需要更换得时候 就可以调用工厂来返回需要得方法 而不需要了解是z怎么来得
通过这些我们也能看到 其实接口也起到了一个 隔离 得作用

如果不写接口:

如果按照以往得写法如果我们更换一次就需要 改写大量得代码
现在我们就可以来改写下工厂而不需要改动其他地方
又例如 需要其他新得方法了 我们就可以在直接 写个方法 +进去 在需要得时候还是通过工厂来调用就OK
通过这个我们还是 能看到 程序要 对添加开放 对修改关闭

所以:
接口是很有用处得
通过上面我们看到了接口得好处
1.隔离性
2.低耦合
3.开闭原则
全部回答
  • 1楼网友:怙棘
  • 2021-11-20 00:19
说那么多大道理没用,需要自己慢慢体会的,随你的工作经验增多就明白了。最简单的是你在开发时候有些东西需要外面(别人或者你不知道谁)去实现,但他必须按照你的要求去实现,那么你就需要使用接口。使用设计模式不是必须的,是为了以后更好扩展才使用的。等你积累到一定程度就理解了。举个例子。我现在需要开发一个播放器,现在可以播放MP3,假如你用结构化代码实现了。那么我告诉你再给我实现播放wma文件,这个时候你设计不好的话就需要把原来的代码改的面目全非了。如果我们先定义好接口比如:播放任何类型文件都有:play(),//播放,strat() //开始stop()//暂停等方法
我们把这些方法定义成接口。然后根据各个类型文件去实现相应的方法。这样以后扩展就很方便了。
我们在主程序里
if(是MP3)
{
IMedia=new MP3()
IMedia.start();
...
}
else if(是wma)
{
IMedia=new Media()
IMedia.start();
}
当然你可以把每个类型都放在配置文件里。这样更好了。以后增加一个新类型就改下配置文件就可以了


然后你在代码里就可以根据相关的类型知道使用哪个程序来播放该文件了。(通过反射可以实现)
不知道你可明白了。
任何设计都会给你增加额外的工作量,如果你不需要修改那么你就很难体会好处,当需求在不断变化后,让你修改代码时候你就明白了好的设计会给你在后续工作中带来很多方便。
yxb48102508你是在说我吗?我说的你不明白吗?
  • 2楼网友:有你哪都是故乡
  • 2021-11-19 23:57
接口就像 我们平时用的电插座 不同电是没有用的,只是留出了可以接通电器的接口
同样,程序中的接口如果没有类继承也是没有用的,
为什么用接口,接口是站在程序设计的角度来考虑问题,这样更容易让设计者从实用性和扩展性来考虑问题,现在多层开发 应用的就是这一原理
实现了接口 所有的方法属性都要实现,因为接口是虚的。
另外接口可以被类多个继承。。
  • 3楼网友:过活
  • 2021-11-19 22:55
在Java中看到接口,第一个想到的可能就是C++中的多重继承和Java中的另外一个关键字abstract。从另外一个角度实现多重继承是接口的功能之一,接口的存在可以使Java中的对象可以向上转型为多个基类型,并且和抽象类一样可以防止他人创建该类的对象,因为接口不允许创建对象。

interface关键字用来声明一个接口,它可以产生一个完全抽象的类,并且不提供任何具体实现。interface的特性整理如下:

1. 接口中的方法可以有参数列表和返回类型,但不能有任何方法体。

2. 接口中可以包含字段,但是会被隐式的声明为static和final。

3. 接口中的字段只是被存储在该接口的静态存储区域内,而不属于该接口。

4. 接口中的方法可以被声明为public或不声明,但结果都会按照public类型处理。

5. 当实现一个接口时,需要将被定义的方法声明为public类型的,否则为默认访问类型,Java编译器不允许这种情况。

6. 如果没有实现接口中所有方法,那么创建的仍然是一个接口。

7. 扩展一个接口来生成新的接口应使用关键字extends,实现一个接口使用implements。

interface在某些地方和abstract有相似的地方,但是采用哪种方式来声明类主要参照以下两点:

1. 如果要创建不带任何方法定义和成员变量的基类,那么就应该选择接口而不是抽象类。

2. 如果知道某个类应该是基类,那么第一个选择的应该是让它成为一个接口,只有在必须要有方法定义和成员变量的时候,才应该选择抽象类。因为抽象类中允许存在一个或多个被具体实现的方法,只要方法没有被全部实现该类就仍是抽象类。

以上就是接口的基本特性和应用的领域,但是接口绝不仅仅如此,在Java语法结构中,接口可以被嵌套,既可以被某个类嵌套,也可以被接口嵌套。这在实际开发中可能应用的不多,但也是它的特性之一。需要注意的是,在实现某个接口时,并不需要实现嵌套在其内部的任何接口,而且,private接口不能在定义它的类之外被实现。
  • 4楼网友:刀戟声无边
  • 2021-11-19 21:00
接口是一个规范

interface Itest
{
void test(string a);
}
//正确
class testDal:Itest
{
void test(string a){};
}
class testBLL:Itest
{
void test(string a){Itest s = new testDal();s.test(a)};
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯