【Java】 Java中接口是什么,以及接口的使用和理解

什么是接口:

接口是Java中一个比较特殊的概念,在构建大型的程序或在程序框架的时候需要经常去编写接口,当我们在编写大型的框架下的程序的时候也会经常去实现接口比如: Swing , Android 等等是一个非常常用的概念

  • 接口这个概念到底是什么:

    首先接口这个词语本身表示两个事物的连接处那么在现实之中我们有个东西叫USB接口, 为了让某些不知道USB接口是啥的同学了解我还是上一张图:
    在这里插入图片描述
    蓝色箭头指向的接口就是USB接口, 我们平时在这个上面可以插入:

    • U盘
    • 数据线
    • 键盘
    • 鼠标
    • .....

    还有很多很多的其他设备, 那么这些设备很明显就不一样而把不一样的标准进行统一的接入 就是接口这种事物的主要作用

Java中的接口:

  • Java中的接口的使用:

    假设你设计了一个使用Java编写的GUI(图形用户接口)框架, 在这个框架里吗你有一个控件叫做按钮

    一个按钮被点击以后当然会有所反应但是这个反应导致的后果是不确定的, 因为需要未来使用这个框架的开发者去决定点击这个按钮点击后究竟是干嘛, 是调转到下一个页面 还是 打开新的页面 还是 调用浏览器打开url 等等, 按照传统思维有多少个需求就有多少个方法去实现, 但是需求是千奇百怪的, 是无穷无尽, 是滔滔不绝的,不可能去把所有情况封装成方法, 而且作为一个框架需要保证其鲁棒性 不能限制开发者的手脚.

    这个时候 接口 的作用就出现了
    接口 中只定义没有方法体(逻辑内容)抽象方法静态变量例如这个点击事件接口:

    interface Click{
    public static int TEST_NUM = 1;
    public abstract void OnClick_Func();
    }
    

    现在假设我们设计了一个按钮类:

    class Button{
        private Click click;
        ......
        private void NowClick(){
            click.OnClick_Func();
        }
    
        public void setClick_Func(Click click){
            this.click = click;
        }
    	......
    }
    

    可以看到设计的Button类中已经有部分逻辑; 假设当按钮被按下的时候就会执行NowClick()方法NowClick()调用了OnClick_Func()方法OnClick_Func()中的参数就是接口Click但是Click中的方法没有逻辑, 这就是巧妙之处Click中的方法需要使用接口的人去填充:

    public class main {
        public static void main(String[] args) {
            Button button = new Button();
            button.setClick_Func(new Click() {
                @Override
                public void OnClick_Func() {
    				/*填充的逻辑*/
                }
            });
        }
    }
    

    可以看到这就是对一个接口的匿名实现通过这种方式在需要以接口为参数的地方快速的实现了接口的功能.

    以上便是一个接口在Java编程中的实际应用

  • 接口与类与抽象类:
    • 接口没有构造器
    • 接口不能用来实例化对象
    • 接口中所有的方法都是抽象方法(java1.8/java8)之后可以不用使用abstract关键字
    • 接口中只能有staticFinal修饰的成员变量
    • 接口支持多继承
    • 接口抽象类抽象类不一定是接口

以上便是接口的主要内容,如有错误欢迎指正.

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值