接口
Posted 橘猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口相关的知识,希望对你有一定的参考价值。
/**
* 1.接口使用interface关键字来定义的
* 2.java中,接口和类是并列的结构
* 3.如何定义接口:定义接口中的成员
* 3.1 JDK7及以前:只能定义全局常量和抽象方法
* >全局常量:public static final的,但是书写时可省略不写(默认为public static final的)
* >抽象方法:public abstract的
*
* 3.2 JDK8及以后:除了定义全局常量和抽象方法外,还可以定义静态方法、默认方法
* 4.接口中不能定义构造器,意味着接口不可以实例化
* 5.java开发中,接口都是通过类去实现(implements)的方式来使用。
* 如果实现类覆盖了接口中的所有抽象方法,则此实现类可以实例化。
* 如果实现类没有覆盖接口中的所有抽象方法,则此实现类仍为一个抽象类
* 6.java类可以实现多个接口----->弥补了java单继承性的局限性。
* >格式:class AA extends BB implements CC,DD,EE
* 7. 接口与接口之间可以继承,而且可以多继承,
* ********************************
* 8.接口的具体使用,体现多态性
* 9.接口,实际上可看作是一种规范
*
* 面试题:抽象类与接口有哪些异同?
*
*/
1 package com.fu.java2; 2 3 4 public class InterfaceTest { 5 public static void main(String[] args) { 6 System.out.println(Flyable.MAX_SPEED); 7 System.out.println(Flyable.MIN_SPEED); 8 Plane plane = new Plane(); 9 plane.fly(); 10 } 11 } 12 13 interface Flyable{ 14 //全局常量 15 public static final int MAX_SPEED = 7900;//第一宇宙速度 16 int MIN_SPEED = 1;//省略了public static final 17 18 //抽象方法 19 public abstract void fly(); 20 void stop();//省略了public abstract 21 22 } 23 24 interface Attackable{ 25 void attack(); 26 } 27 28 class Plane implements Flyable{ 29 30 @Override 31 public void fly() { 32 System.out.println("飞机通过引擎起飞"); 33 } 34 35 @Override 36 public void stop() { 37 System.out.println("驾驶员减速停止"); 38 } 39 40 } 41 42 class Bullet extends Object implements Flyable,Attackable{ 43 44 @Override 45 public void fly() { 46 47 } 48 49 @Override 50 public void stop() { 51 52 } 53 54 @Override 55 public void attack() { 56 57 } 58 } 59 60 interface AA{ 61 void method1(); 62 } 63 interface BB{ 64 void method2(); 65 } 66 interface CC extends AA,BB{ 67 68 }
package com.fu.java2; /** *接口的使用 * 1.接口使用上也满足多态性 * 2.接口实际上就是定义了一种规范 * 3.开发中,体会面向接口编程0 * * */ public class USBTest { public static void main(String[] args) { Computer computer = new Computer(); //1.创建了接口的非匿名实现类的非匿名对象 Flash flash = new Flash(); computer.transferDate(flash); //2.创建了接口的非匿名实现类的匿名对象 computer.transferDate(new Printer()); //3.创建了接口的匿名实现类的非匿名对象 USB phone = new USB() { @Override public void start() { System.out.println("手机开始工作"); } @Override public void stop() { System.out.println("手机结束工作"); } }; computer.transferDate(phone); //4.创建了接口的匿名实现类的匿名对象 computer.transferDate(new USB() { @Override public void start() { System.out.println("MP3开始工作"); } @Override public void stop() { System.out.println("MP3手机结束工作"); } }); } } class Computer{ public void transferDate(USB usb){// USB usb = new Flash(); usb.start(); System.out.println("具体的传输数据的细节"); usb.stop(); } } interface USB{ //常量:定义了长、宽、最大最小的传输速度等 void start(); void stop(); } class Flash implements USB{ @Override public void start() { System.out.println("U盘开启工作"); } @Override public void stop() { System.out.println("U盘结束工作"); } } class Printer implements USB{ @Override public void start() { System.out.println("打印机开启工作"); } @Override public void stop() { System.out.println("打印机结束工作"); } }
此为本人学习笔记,若有错误,请不吝赐教
以上是关于接口的主要内容,如果未能解决你的问题,请参考以下文章
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段