目录

基本知识

接口的概念

接口的语法

接口的拓展

接口的应用

谢谢大家的观看!!!


基本知识

接口的概念

接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。
在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。

接口的语法

1.接口的定义:权限  + interface  +  接口名

eg: public interface Ishape     (接口名最好是用大写字母i打头)

2.接口底下不能写构造方法

java 接口安全问题 java接口规范有哪些_ide

3.接口中的成员默认是public static final,不写也没有关系

java 接口安全问题 java接口规范有哪些_java 接口安全问题_02

4.接口中的方法不写默认是public abstract

java 接口安全问题 java接口规范有哪些_System_03

 5.接口不能被实例化

java 接口安全问题 java接口规范有哪些_java 接口安全问题_04

6.接口要通过类来实现

public class + 类名称 + implements

java 接口安全问题 java接口规范有哪些_java 接口安全问题_05

 7.接口中的方法不能有具体实现

java 接口安全问题 java接口规范有哪些_开发语言_06

如果非要有实现也不是不行 ,加default或者static

java 接口安全问题 java接口规范有哪些_java_07

接口的拓展

java 接口安全问题 java接口规范有哪些_java 接口安全问题_08

 接口c既有原来自己的功能(funcc),也能用接口A,接口B的功能

java 接口安全问题 java接口规范有哪些_java 接口安全问题_09

接口的应用

1.先建立一个USB的接口,里面有两个方法,打开和关闭 

java 接口安全问题 java接口规范有哪些_java_10

2.建立一个鼠标类,用implement去连接IUSB接口

java 接口安全问题 java接口规范有哪些_java_11

 tips:怎 么 快 速 写 重 写 方 法

java 接口安全问题 java接口规范有哪些_开发语言_12

先 用 鼠 标 点 击 红 色 的 线,然 后 在 按 alt+回 车,就 会 出 现 重 写 方 法 啦 

java 接口安全问题 java接口规范有哪些_开发语言_13

 3.用同样的方法再建立一个键盘类,方法同上

java 接口安全问题 java接口规范有哪些_开发语言_14

4. 再建立一个电脑类,方法有打开和关闭,我们试图通过电脑类来使其他的设备也能连接IUSB接口

java 接口安全问题 java接口规范有哪些_java_15

如果这里接收到的是鼠标,就是鼠标在用这个接口,如果接受到的是键盘,那就是键盘在用这个接口,这里用了向下转型通过 instanceof 找到鼠标类,如果直接用usb去用鼠标类的方法click的是不行的,因为IUSB里面没有click这个方法,在鼠标类里面才有,所以这里要  类型强转  ,将usb强转为鼠标类,再去用click方法 ,下面的同理

5.最后再调用computer类,运行起来

java 接口安全问题 java接口规范有哪些_java 接口安全问题_16


 运行结果如下

java 接口安全问题 java接口规范有哪些_java_17

 如果上面这个例子没很明白的话,这是我的问题,可能有点抽象,那我们再来看一个例子吧

 

java 接口安全问题 java接口规范有哪些_java_18

 1.先定义一个动物类,并给上构造方法

java 接口安全问题 java接口规范有哪些_java_19

 2.定义一个IRunning接口

java 接口安全问题 java接口规范有哪些_java_20

这里先是继承Animal类,再用implements 和接口连接上,里面先调用父类的构造方法,再重写接口的run方法

java 接口安全问题 java接口规范有哪些_System_21

 3.用同样的方式去完成🕊Bird,🐟Fish类吧

java 接口安全问题 java接口规范有哪些_java_22

java 接口安全问题 java接口规范有哪些_java_23

4.我们能不能把之前的接口都用上?当然可以!!!建立一个鸭子类,鸭子又会跑又会飞又会游,直接在implement后面多加几个接口就可以了,然后依次进方法重写

java 接口安全问题 java接口规范有哪些_java 接口安全问题_24

5.方法调试,运行起来

java 接口安全问题 java接口规范有哪些_System_25

 这时候可能会想,那🦆鸭子类怎么办呢

怎么办?     好办!

java 接口安全问题 java接口规范有哪些_java 接口安全问题_26

 和前面的其他动物一样,这里是为了区分,才加的1和2

我们一起来看一下结果吧

java 接口安全问题 java接口规范有哪些_java_27

 这里我们可以感受到,接口就是一种功能,我们就算不是动物也能用比如建立一个pen类

java 接口安全问题 java接口规范有哪些_java_28

java 接口安全问题 java接口规范有哪些_开发语言_29

结果如下

java 接口安全问题 java接口规范有哪些_开发语言_30

 以 上 我 们 发 现 就 算 不 是 动 物 也 能 用 我 们 的 跑 步 的 接 口 ,所 以 我 们 的 接 口 是 撇 开 了 类 型 的,只 要 满 足 这 个 功 能 就 可 以 

abstract class Animal{    public String name;

    //构造方法赋初值
    public Animal(String name) {

        this.name = name;
    }
}
interface IRunning{
    void run();
}
interface ISwimming{
    void swim();
}
interface IFly{
    void fly();
}
class Dog extends Animal implements IRunning{

    public Dog(String name) {
        super(name);
    }

    @Override
    public void run() {
        System.out.println(name +"用两条狗腿腿在跑");
    }
}
class Fish extends Animal implements ISwimming{

    public Fish(String name) {
        super(name);
    }

    @Override
    public void swim() {
        System.out.println(name+"用两条腿在游");
    }
}
class Bird extends Animal implements IFly{

    public Bird(String name) {
        super(name);
    }

    @Override
    public void fly() {
        System.out.println(name+"用翅膀飞");
    }
}
class Duck extends Animal implements IRunning,IFly,ISwimming{
    public Duck(String name) {
        super(name);
    }

    @Override
    public void run() {
        System.out.println(name+"用两条腿在跑");
    }

    @Override
    public void swim() {
        System.out.println(name+"用两条腿在游");
    }

    @Override
    public void fly() {
        System.out.println(name+"用翅膀飞");
    }

}
class pen implements IRunning{

    @Override
    public void run() {
        System.out.println("我也能跑,没想到吧!");
    }
}
public class test {
    //用接口去调用
    public static void fly(IFly iFly){
        iFly.fly();
    }
    public static void swim(ISwimming iSwimming){
        iSwimming.swim();
    }
    public static void walk(IRunning iRunning){
        iRunning.run();
    }
    public static void main(String[] args) {
        walk(new pen());
        walk(new Dog("二蛋"));
        swim(new Fish("小鱼儿"));
        fly(new Bird("雷霆战鸡"));
        System.out.println("=======");
        walk(new Duck("小鸭1"));
        swim(new Duck("小鸭2"));

    }
}

谢谢大家的观看!!!