什么是接口

一、接口

1、现实生活中的接口
Usb接口是电脑上自带可以与很多其它的外部设备进行连接和通讯的一个端口。不同的设备都可以接在同一个端口上,它们却可以实现各种不同的功能。因为所有的usb接口都遵循同一种标准和规范,所有需要和它进行相连的设备就必须要符合这些标准和规范,首先,外设必须 要有能够插入到usb的插口,其次外设的内部必须要有符合与计算机进行通讯标准的芯片。另外,计算机的操作系统内部有带有与可连接设备进行通讯的驱动程序(同样也是标准的,否则有的设备就不可用)。

2、 java的接口
(1)接口也是引用类型,它也可以用来声明对象的类型。
(2)接口的主要作用就是向外提供一个或多个行为的标准,提供这种标准的方式就是在接口中提供一个或多个抽象方法,这些方法必须是公共方法。
(3)设计接口的主要目的就是让需要遵循确定行为标准的类去实现的。也就是类可以实现接口,如果一个类实现了接口,它就会遵循该接口的行为标准。
(4)接口的定义,与类的定义相似,但使用的关键字 interface .

public interface Usb {
    //接口中的抽象方法,它体现了接口对外公开的一种行为标准
           public abstract void action();
        }

接口的实现

public class Mouse implements Usb {
    @Override
    public void action() {
        System.out.println("鼠标可以点击按钮");
    }
}
public class KeyBoard implements Usb {
    @Override
    public void action() {
        System.out.println("键盘可以输入字符");
    }
}

(5)接口主要用来被类实现,所以在实例化对象的时候,实例化的是类的对象,接口不能实例化对象,只能被类实现。类实现接口使用 Implements 关键字
使用实现接口的类

Mouse mouse = new Mouse();
KeyBoard board = new KeyBoard();
//以下两方法在执行中的表现是不同的。
mouse.action();
board.action();

6、接口中的成员
(1)常量,它可以在类和接口中出现,凡是带有final关键字的成员变量统称为常量,它是变量的一种特殊形式,一旦赋值就不能改变。
基本语句:访问修饰符 [static] final 数据类型 常量名。
常量的使用:接口中的常量可以直接用接口名称来使用,接口名称.常量名.
System.out.println(“usb接口的大小是”+Usb.SIZE);
也可以在接口的实现类中使用,可以直接使用常量名。

 public void action() {
    System.out.println("鼠标可以点击按钮,接入的usb的大小是"+SIZE);
}

(2)抽象方法
因为接口所提供的标准是通过设计抽象方法来完成的,接口中的抽象方法又必须对外公开,所以这种方法默认就是公共且抽象的。在写接口时,public 和 abstract 两个关键字都可以省略,省略写才是接口中抽象方法的一般写法。
void action();

以上所提到的接口中的成员只有两种,这种情形是jdk1.8之前的规定;从1.8 开始,java为了引入函数式的设计方式(通过lambda表达式来体现),为了方便lambda表达式的实现,在jdk中原有一些老的接口中添加了一些新方法,其中有的方法有特别的要求,比如List接口新增了foreach方法用来在函数式编程中迭代集合,函数式编程要使用接口,因此接口中就出现了新的成员。
提示:以下所提的成员,现阶段也可能包含今后一个比较长的阶段,在开发时使用不会太多,掌握以上两种成员依然进现阶段学习的重点,下面的成员主要进行了解式的学习。
(3)默认方法
默认方法就是在方法声明时添加 default关键字,它有方法的实现,但是默认方法不能通过接口调用,只能通过接口的实现类来调用。默认可以被重写。

 default void insert(){
    System.out.println("所有的设备都必须要插入计算机才能使用");
}

(4)静态方法
接口中也可以有静态方法,静态方法的定义与前述所讲是一样的。接口中的静态方法只能通过接口调用。

  Usb.installSoftWare();

(5)私有方法
方法前带有 private 访问修饰符。Jdk9才有私有方法。

7、接口的多实现
Java只允许单继承,可以为了解决单继承的问题,提供了接口的多实现,一个类可以同时实现多个接口。

Implements 接口1,接口2.......
public class Mouse implements Usb,ClickDev 

8、接口可以多重继承
一个接口可去继承多个接口。也是对不能多继承的补充。也是使用extends 关键字。
如果一个类实现了继承多个接口的接口,那么该类就要实现多个接口中的抽象方法。

public interface MouseDev extends Usb,ClickDev {   
}
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值