著名外国网站,广州建设工程交易中心官网首页,如何做网站建设业务员,申请网页的注意事项接口(interface)
接口的理解
接口就是规范#xff0c;定义的是一组规则#xff0c;体现了现实世界中“如果你是/要…则必须能…”的思想。继承是一个是不是的is-a关系#xff0c;而接口实现则是 能不能的has-a关系。 接口的本质是契约、标准、规范…接口(interface)
接口的理解
接口就是规范定义的是一组规则体现了现实世界中“如果你是/要…则必须能…”的思想。继承是一个是不是的is-a关系而接口实现则是 能不能的has-a关系。 接口的本质是契约、标准、规范就像我们的法律一样。制定好后大家都要遵守。 接口的定义
定义接口的关键字:interface
声明格式:
[修饰符] interface 接口名{//接口的成员列表// 公共的静态常量// 公共的抽象方法// 公共的默认方法JDK1.8以上// 公共的静态方法JDK1.8以上// 私有方法JDK1.9以上
}声明属性:必须使用public static final修饰 声明方法: jdk8之前声明抽象方法修饰为public abstract jkd8: 声明静态方法、默认方法 jdk9声明私有方法 不可以使用interface声明 构造器、代码块等
interface的使用
接口和类的关系:实现关系
interface Flyable{//接口//全局常量public static final int MIN_SPEED 0; //最低速度//可以省略 public static final//自动默认为静态final的常量int MAX_SPEED 7900; //最高速度public abstract void fly(); //默认为抽象方法可以省略public abstract //抽象方法无方法体
}interface Attackable{//接口public abstract void attack();
}
class Plane implements Flyable,Attackable{//实现Flyable接口//接口中存在抽象方法① 使用abstract修饰方法使方法为抽象方法// ② 重写抽象方法public void fly(){System.out.println(Plane.fly);}Overridepublic void attack() {System.out.println(Plane.attack);}
}具体格式:
class A extend SuperA implements B,c{}
//A是SuperA的子类
//A 是 B,C的 实现类注意点: 一个接口中的所有属性都默认为public final修饰为常量赋值后不可更改 一个接口中所有的方法都为public abstrace修饰为抽象方法 一个类可以实现多个接口类针对于接口的多实现一定程度上就弥补了类的单继承的局限性一个类实现了一个接口这个类必须将实现接口中所有的抽象方法进行重写否则要将此类声明为抽象类
接口和接口的关系继承关系 使用关键字extends进行继承 interface AA{void method1(); //抽象方法无方法体
}interface BB{void method2();
}interface CC extends AA,BB{//接口可以多继承}接口的多态性 接口名 变量名 new 实现类对象 package interfaceTest;public class UsbTest {public static void main(String[] args) {//1创建接口实现类的对象Computer computer new Computer();Printer printer new Printer();//2.创建接口实现类的匿名对象computer.transferDate(printer);//多态的体现computer.transferDate(new Camera());//3. 创建接口匿名实现类的对象USB usb1 new USB(){Overridepublic void start() {System.out.println(U盘开始工作);}Overridepublic void stop() {System.out.println(U盘停止工作);}};computer.transferDate();}
}class Computer{ //电脑类public void transferDate(USB usb){System.out.println(设备连接成功);usb.start();System.out.println(数据传输细节操作);usb.stop();}
}class Printer implements USB{Overridepublic void start() {System.out.println(打印机工作);}Overridepublic void stop() {System.out.println(打印机结束工作);}
}class Camera implements USB{Overridepublic void start() {System.out.println(照相机工作);}Overridepublic void stop() {System.out.println(照相机结束工作);}
}
interface USB{//声明常量 省略public abstract void start();void stop();
}