【接口的使用】

简介: 【接口的使用】



什么是接口

现实生活中的接口是:电脑上的USB接口,可以插鼠标,U盘,耳机孔,

插座上的孔可以插充电器,电脑,电视,电饭煲等等符合规范的设备。

在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。

语法规则

接口的定义格式与定义类的格式基本相同

接口方法默认都是public abstract 修饰的接口当中的成员变量默认是:public static final

可以省略不写,接口方法不能实例化。

但有两个例外:一个是static修饰的,另一个是default修饰的。

总结:接口的方法有三种写法

public interface useService {
    public static  void method(){
    }
    public default void method2(){
    }
    public abstract void method3();
}

写接口时注意:

  1. 创建接口时, 接口的命名一般以大写字母 I 开头.
  2. 接口的命名一般使用 “形容词” 词性的单词.
  3. 阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性

接口使用

注意子类和父类之间是extends 继承关系,类与接口之间是 implements 实现关系

1.接口不能直接使用,必须要有一个"实现类"来实现接口中的所有抽象方法。

// USB接口
public interface USB {
 void openDevice();
}
// 鼠标类,实现USB接口
public class Mouse implements USB {
//实现接口的抽象方法
@Override
  public void openDevice() {
  System.out.println("打开鼠标");
  }
}

2.接口中不能有静态和实例代码块以及构造方法

3.接口虽不是类,但字节码文件后缀格式仍是.class

4.如果类中没有重写接口中的所有抽象方法,则类必须设置为抽象类

//重写
public interface ITest {
    void func();
}
class flower implements ITest{
    @Override
    public void func() {
    }
}
//不重写
public interface ITest{
    void func();
}
    abstract class fruit implements ITest{
    public abstract void fruit();
}

关于接口要求总结:

接口的具体实现(不熟)

package Demo2;
public interface USB {
    void openDevice();
    void closeDevice();
}
public class Mouse implements USB{
    @Override
    public void openDevice() {
        System.out.println("鼠标开始工作!");
    }
    public void click(){
        System.out.println("疯狂点击鼠标.....");
    }
    @Override
    public void closeDevice() {
        System.out.println("鼠标结束工作!");
    }
}
public class keyBoard implements USB{
    @Override
    public void openDevice() {
        System.out.println("插上键盘盘!");
    }
    public void input(){
        System.out.println("疯狂敲击键盘盘:&%$@#%&()))*^%#!!@&()PLNVTYUCDSTIUJ(U(*Y^$.......");
    }
    @Override
    public void closeDevice() {
        System.out.println("关上键盘盘!");
    }
}
public class Computer {
    public void poweron(){
        System.out.println("打开电脑!");
    }
    public void poweroff(){
        System.out.println("关闭电脑!");
    }
    public void useService(USB usb){
        usb.openDevice();
        if(usb instanceof Mouse){
            Mouse mouse =(Mouse) usb;//向下转型
            mouse.click();
        } else if (usb instanceof  keyBoard) {
            keyBoard Board2 = (keyBoard) usb;
            Board2.input();
        }
            usb.closeDevice();
        }
    }
public class Test {
    public static void main(String[] args) {
        Computer computer =new Computer();
        computer.poweron();
        Mouse mouse = new Mouse();
        computer.useService(mouse);
        System.out.println("===========");
        keyBoard Board2 = new keyBoard();
        computer.useService(Board2);
        computer.poweroff();
    }
}

总结

今天又新学了知识:接口,还不是很熟悉,担心与前面的记混了,明天继续~

相关文章
|
7月前
|
IDE C# 开发工具
C#系列之接口介绍
C#系列之接口介绍
|
7月前
|
C++
几个实用的C++函数接口
几个实用的C++函数接口
|
7月前
|
前端开发 API C#
C# 接口
C# 接口
46 1
|
7月前
|
存储 安全 Java
AVAList接口
AVAList接口
34 1
|
Java
【实现多个接口的使用】
【实现多个接口的使用】
69 0
|
Java
接口
接口
100 0
|
Java Maven
一文了解ConfigurationConditon 接口
在了解ConfigurationCondition 接口之前,先通过一个示例来了解一下@Conditional 和 Condition。
115 0
|
C# 索引
C#-接口
接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。接口可有方法、属性、事件和索引器或这四种成员的任何组合类型,但不能包含字段。接口只包含了成员的声明,在继承的类中进行实现。
118 0
|
Java
接口详解介绍
接口详解介绍
132 0
|
JavaScript 前端开发 容器
56、GlobalEventHandlers 接口
某个对象的abort事件(停止加载)发生时,就会调用onabort属性指定的回调函数。 各种元素的停止加载事件,到底如何触发,目前并没有统一的规定。因此实际上,这个属性现在一般只用在<img>元素上面。
154 0