image.png
    image.png
    package com.atguigu.java3;
    /
    接口的使用
    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.接口,实际上可以看做是一种规范

    面试题:抽象类与接口有哪些异同?


    */

    1. package com.atguigu.java3;
    2. /*
    3. * 接口的使用
    4. * 1.接口使用interface来定义
    5. * 2.Java中,类和接口是两个并列的结构
    6. *
    7. * 3.如何定义接口:定义接口中的成员
    8. *
    9. * 3.1 JDK7及以前:只能定义全局常量和抽象方法
    10. * >全局常量:public static final的,但是书写时可以省略不写
    11. * > 抽象方法:public abstract的
    12. *
    13. * 3.2 JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法(略)
    14. *
    15. * 4.接口中不能定义构造器! 意味着接口不可以实例化
    16. *
    17. * 5.Java开发中,接口通过让类实现(implements)的方式来使用
    18. * 如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化
    19. * 如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类
    20. *
    21. * 6.Java类可以实现多个接口 ---->弥补了Java单继承的局限性
    22. * 格式: class AA extends BB implements CC,DD,EE
    23. *
    24. * 7.接口与接口之间可以继承,而且可以多继承
    25. *
    26. * *******************
    27. * 8.接口的具体使用,体现多态性
    28. * 9.接口,实际上可以看做是一种规范
    29. *
    30. * 面试题:抽象类与接口有哪些异同?
    31. *
    32. *
    33. */
    34. public class Interface {
    35. public static void main(String[] args) {
    36. Plane plane = new Plane();
    37. plane.fly();
    38. }
    39. }
    40. interface Flyable {
    41. // 全局常量
    42. public static final int MAX_SPEED = 7900;
    43. public static final int MIN_SPEED = 1;
    44. // public static final可以省略
    45. // 抽象方法
    46. public abstract void fly();
    47. public abstract void stop();
    48. }
    49. interface Attackable {
    50. public abstract void attack();
    51. }
    52. class Plane implements Flyable {
    53. @Override
    54. public void fly() {
    55. System.out.println("飞机起飞");
    56. }
    57. @Override
    58. public void stop() {
    59. System.out.println("驾驶员减速停止");
    60. } // 实现接口
    61. }
    62. abstract class Kite implements Flyable { // 风筝
    63. @Override
    64. public void fly() {
    65. }
    66. }
    67. class Bullet implements Flyable, Attackable { // 多个接口
    68. @Override
    69. public void fly() {
    70. }
    71. @Override
    72. public void attack() {
    73. // TODO Auto-generated method stub
    74. }
    75. @Override
    76. public void stop() {
    77. // TODO Auto-generated method stub
    78. }
    79. }
    80. //*********************************************************
    81. interface AA{
    82. }
    83. interface BB{
    84. }
    85. interface CC extends AA,BB{
    86. }
    87. *******************************************************************************************************

    image.png