Java中的“接口”与C中的“函数”有什么区别?

2024-05-01 01:04

1. Java中的“接口”与C中的“函数”有什么区别?

这个我一般都避免在细节上比较这两种语言,因为一种是动态的,一种是静态的,导致了数据处理方式上的较大区别。但是鉴于有点想回答你这个问题于是就尝试着来比较一下:
1.
java
方法对应
java
语言的作用
就相当于
c
函数
对应于
c
语言的作用,这个应该没有疑问,就算是角色作用相似吧。
2.
java
的静态方法可以说更接近
c
的函数,它们都有自己的一个名称、返回值类型和参数列表、和函数体(方法体),并且都是“静态”的。最后这点就不适合成员方法。这个可以算是形式上的相似点。
3.
java
支持方法重载,c
语言不支持,这是功能上的不同点。
4.
java
方法有四种访问权限,c
一视同仁,这是功能上的不同点。
5.
java
方法是属于类/对象的,c
就说不上属于哪个了,这算什么不同?

Java中的“接口”与C中的“函数”有什么区别?

2. java接口可以理解成C语言函数声明吗 ?

跟C语言里的声明不一样。准确地说,C语言里没有很恰当的可比的东西。因为接口与实现是属于面向对象编程的概念,而C语言里没有类似概念。

如果一定要拿C语言里的东西来比喻,可以这么理解:java接口里的方法就相当于C语言里的函数指针。在java接口里,这些函数指针都是初始化成NULL的,所以不能直接调用。你想使用这些函数指针,必须让这些函数指针指向某个具体的函数,也就是说要先implement。

这么讲你可能会晕掉,如果你熟悉C++的话就好办了。可以把java接口理解成C++里的纯虚类,而java接口里的方法就是C++的纯虚函数。 

补充:
模块之间最好是通过接口连接,这是推荐做法。这么做的好处是可以降低模块之间的依赖程度。

3. Java中的接口有什么作用?与函数、类有什么区别?

Java接口 
       Java中,能够完成特定功能的,由若干属性和方法组织成的,相对独立的属性和方法的集合。实现类的多继承,以解决Java只能单继承,不支持多继承的问题。  
 
  用关键字interface定义接口,通过关键字implements来声明接口; 
 
  
 
  实现多接口的类必须符合3个原则:能为所有的接口提供实现的功能, 
 
  能遵循重写的所有规则, 
 
  能保持相同的返回的数据类型。 
 
  接口的”继承”与类之间的继承不同,”继承”该接口的类,需要”自力更生”,去实现接口中的抽象方法,因此接口也相当于一个特殊的抽象类。 
 
  接口相当于程序开发的一组协议,需要此功能的类均可”继承”该方法和集合。 
 
  接口中的属性都是静态常量,方法都是抽象方法(即没有给出方法具体定义),一个类实现接口后,将继承接口中的所有静态常量。 
 
  实现接口中的抽象方法时,方法头必须与接口定义中的方法头完全相同(包括访问控制修饰符、返回值类型、参数列表等)(例外:可去掉关键abstract、接口定义时public可缺省,但是实现时不可缺)

Java中的接口有什么作用?与函数、类有什么区别?

4. C++ 函数的接口指的是什么?

函数本身就是接口,通俗来讲就是指函数的调用。使用某个接口,可以实现某种功能,不需要去思考是怎么实现的,指的是函数的返回值类型及形参类型和个数的定义。

5. 请教一个Java开发过程中的接口概念。

接口 / Interface 的存在非但不是“多此一举”,而是让开发者能够“相对”更加灵活地定义不同的类。
接口当中只是单纯地给出方法名字也正是为了能够让开发人员能够根据具体地需求去 实现 / implement 接口当中的各个方法。

举个例子。
我定义了一个接口 叫做 Eat / 吃
我又定义了几个类,人,鳄鱼,昆虫。他们都可以归为一个父类“生物”
但应用到实际中,人可以实现吃的功能,鳄鱼可以吃,昆虫也可以吃。但是相对于彼此之间“吃”必然会存在差异。那么“接口”这个概念就可以从某一个方面满足我们对于以上3个类对于“吃”的定义。
他们三个都可以implement Eat 这个接口,但实际使用的时候,餐桌上端上来一只烤火鸡,
人可以用筷子吃、用刀叉吃、甚至用手撕着吃
鳄鱼从沼泽中爬出来,整个吞咽下去“吃”
昆虫飞过来(比如苍蝇),利用它自己分泌的生物酶将烤鸡的蛋白质分解成可以吸吮进体内的状态也可以含糊地称为“吃”
总之无论怎么“吃”,三个类都根据各自的具体需要而分别实现了对于接口“吃”的定义。 而这里面用筷子,用刀叉,手撕,浑沦吞枣一样整个吞下去就是具体实现的方法。在你定义的类中可以对,当然也是必须对接口当中的每一个函数  / 方法做出具体的定义。

而在接口“吃”当中,根本没人关心你怎么去实现它(或者说没人关心你怎么吃),当然也不允许你去实现它。笼统地来说,绝大部分生物都可以实现吃的功能,那么具体怎么吃,就“因类而异”了!因为没人知道以后你会不会又想定义个蝴蝶、斑马,阿凡达甚至胡8出来。到那时如果它们不想饿肚子,想要“吃”,那就要具体去实现了。

接口的定义与实现是一个“概念”,根据不同的应用需求可以有不同的使用方法。

请教一个Java开发过程中的接口概念。