- /*
- * 接口的使用
- * 1. 接口使用 interface 来定义
- * 2.Java 中, 接口和类是并列的两个结构
- * 3. 如何定义接口: 定义接口中的成员
- *
- * 3.1 JDK7 及以前: 只能定义全局常量和抽象方法
- *>全局常量: 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. 接口, 实际上可以看做是一种规范
- *
- * 面试题: 抽象类与接口有哪些异同?
- *
- */
- public class InterfaceTest {
- public static void main(String[] args) {
- System.out.println(Flyable.MAX_SPEED);
- System.out.println(Flyable.MIN_SPEED);
- // Flyable.MIN_SPEED = 2;
- Plane plane = new Plane();
- plane.fly();
- }
- }
- interface Flyable{
- // 全局常量
- public static final int MAX_SPEED = 7900;// 第一宇宙速度
- int MIN_SPEED = 1;// 省略了 public static final
- // 抽象方法
- public abstract void fly();
- // 省略了 public abstract
- void stop();
- //Interfaces cannot have constructors
- // public Flyable(){
- //
- // }
- }
- interface Attackable{
- void attack();
- }
- class Plane implements Flyable{
- @Override
- public void fly() {
- System.out.println("通过引擎起飞");
- }
- @Override
- public void stop() {
- System.out.println("驾驶员减速停止");
- }
- }
- abstract class Kite implements Flyable{
- @Override
- public void fly() {
- }
- }
- class Bullet extends Object implements Flyable,Attackable,CC{
- @Override
- public void attack() {
- // TODO Auto-generated method stub
- }
- @Override
- public void fly() {
- // TODO Auto-generated method stub
- }
- @Override
- public void stop() {
- // TODO Auto-generated method stub
- }
- @Override
- public void method1() {
- // TODO Auto-generated method stub
- }
- @Override
- public void method2() {
- // TODO Auto-generated method stub
- }
- }
- //************************************
- interface AA{
- void method1();
- }
- interface BB{
- void method2();
- }
- interface CC extends AA,BB{
- }
来源: http://www.bubuko.com/infodetail-3345445.html