什么是接口
现实生活中的接口是:电脑上的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();
}
}
总结
今天又新学了知识:接口,还不是很熟悉,担心与前面的记混了,明天继续~