【接口的使用】


什么是接口

现实生活中的接口是:电脑上的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();


    }
}

总结

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

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值