什么是接口
现实生活中的接口是:电脑上的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(); }
写接口时注意:
- 创建接口时, 接口的命名一般以大写字母 I 开头.
- 接口的命名一般使用 “形容词” 词性的单词.
- 阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性
接口使用
注意:子类和父类之间是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(); } }
总结
今天又新学了知识:接口,还不是很熟悉,担心与前面的记混了,明天继续~