java接口怎么理解?java接口的理解

阳光 2021-12-17 16:38:53 java常见问答 6598

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,那java接口怎么理解?下面来我们就来给大家讲解一下java接口相关知识。

1、 接口是一种特殊的抽象类,包含方法和属性(成员变量),其中方法都是抽象方法,即只有方法名没有方法体的形式。所有成员变量都是常量没有变量。

2、接口存在的意义:

接口的存在是根据外部的功能而存在的。他包含很多抽象方法,这些抽象方法需要实现,那么就需要实现类,实现类必须实现这些方法,当然也可以有自己的方法。但是接口中的方法一个不能少。因此接口就很大程度上限制了实现类的方法或功能。另外接口下面可以有好几个这种类,并且这些实现类功能上可以相同,这就实现了不相关类的相同行为。

3、接口所运用的思想:接口的思想是封装,外部调用只能通过接口调用,并不知道实现类是如何实现的,这就起到了封装作用。

4、接口带来的好处:只要接口不变那么他的实现类想怎么变都行,这样的话就提高了系统的可扩展性和可维护性。即“接口是系统可插拔性的保证”。

5、接口和抽象类:1优先选用接口,2在既定义了子类的行为,又要为子类提供公共的功能时应选择抽象类。

6、接口和继承:一个类可以实现多个接口,但继承只能允许一个类,即单继承。2类的继承有安全隐患,接口没有。

请记住:一切事物均有功能,即一切事物均有接口。

类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements。

其他类(实现类)实现接口后,就相当于声明:”我应该具备这个接口中的功能”。实现类仍然需要重写方法以实现具体的功能。

格式:

class 类 implements 接口
{
    重写接口中方法
}

在类实现接口后,该类就会将接口中的抽象方法继承过来,此时该类需要重写该抽象方法,完成具体的逻辑。

1)接口中定义功能,当需要具有该功能时,可以让类实现该接口,只声明了应该具备该方法,是功能的声明。

2)在具体实现类中重写方法,实现功能,是方法的具体实现。

于是,通过以上两个动作将功能的声明与实现便分开了。(此时请重新思考:类是现实事物的描述,接口是功能的集合。)

举例;

比如一台电脑,主板上的PCI插槽就可以理解为现实中的接口

你可你把声卡,显卡,网卡都插在PCI插槽上,而不用担心那个插槽是专门插哪个的

原因是做主板的厂家和做各种卡的厂家都遵守了统一的规定 包括尺寸,排线等等

但是各种卡的内部实现结构是不一样的.

通过生活中例子模拟java面向接口编程实例

package com.test;
/**
* 定义PCI接口,定义主板PCI插槽规范
* @author yanerkang
*
*/
public interface PCI
{
    void start();
    void stop();
}
package com.test;
/**
* 网卡实现PCI接口规范
* @author yanerkang
*
*/
public class NetworkCard implements PCI
{
    public void start()
    {
        System.out.println("Send...");
    }
    public void stop()
    {
        System.out.println("Network stop!");
    }
}
package com.test;
/**
* 显卡实现PCI接口规范
* @author yanerkang
*
*/
public class GraphicCard implements PCI
{
    public void start()
    {
        System.out.println("Display Graphic...");
    }
    public void stop()
    {
        System.out.println("Display Graphic stop!");
    }
}
package com.test;
/**
* 声卡实现PCI接口规范
* @author yanerkang
*
*/
public class SoundCard implements PCI
{
    public void start()
    {
        System.out.println("Du du...");
    }
    public void stop()
    {
        System.out.println("Sound stop!");
    }
}
package com.test;
/**
* 主板类
* @author yanerkang
*
*/
public class MainBoard
{
    /**
    * 通过这个方法,主板上可以插入任何实现PCI接口规范的卡
    *
    * @param pci 参数类型为接口,任何实现接口的类都可以传进来.
    */
    public void usePCICard(PCI pci)
    {
        pci.start();
        pci.stop();
    }
}
package com.test;
public class Assembler
{
    /**
    * @param args
    */
    public static void main(String[] args)
    {
        MainBoard mb = new MainBoard();
        //在主板上插入网卡
        PCI nc = new NetworkCard();
        mb.usePCICard(nc);
        //在主板上插入声卡
        PCI sc = new SoundCard();
        mb.usePCICard(sc);
        //在主板上插入显卡
        PCI gc = new GraphicCard();
        mb.usePCICard(gc);
    }
}

输出:

Send...
Network stop!
Du du...
Sound stop!
Display Graphic...
Display Graphic stop!

Java接口提高了系统的可扩展性和可维护性,并且很大程度上限制了实现类的方法或功能,所以java接口在一个程序中还是很重要的。最后大家如果想要了解更多java常见问答知识,敬请关注奇Q工具网。

推荐阅读:

git客户端如何安装?git客户端安装教程

java构造函数可以抛出异常吗?java构造函数有什么特点?

java怎么在窗口中添加计时器?java实现计时器功能