一.接口

  • 概念

    接口是Java编程语言中一种援用类型,是办法的汇合,接口通常以interface来申明,接口的外部次要就是封装了办法,蕴含形象办法,默认办法和静态方法,公有办法。

  • 接口的申明

    public interface 接口名称 {
    // 形象办法
    // 默认办法
    // 静态方法
    // 公有办法
    }

  • 接口的定义方法与实现

1. 形象办法

【应用abstract,子类必须实现,定义接口可省略public与abstract】

  接口:   public interface  名{    void eat();    void sleep();   }  实现类:   public class dowu implements 名{    @Override    public void eat() {     System.out.println("吃货色");    }    @Override    public void sleep() {     System.out.println("早晨睡");    }   } 测试类:   public class Dom01 {    public static void main(String[] args) {      dowu a = new dowu();      a.eat();      a.sleep();    }   }

2. 默认办法

默认:【应用 default ,继承重写,二选一,只能通过实现类的对象来调用,定义接口可省略public】

  接口:   public interface 名{    default void fly(){     System.out.println("天上飞");     }   }  实现:   public class dowu implements 名{    @Override    public void fly() {     System.out.println("无拘无束的飞");    }   } 重写默认办法: 接口:   public interface 名 {    default void fly(){     System.out.println("天上飞");    }   }  实现:   public class dowu implements 名{    @Override    public void fly() {   System.out.println("无拘无束的飞");    }   }  **(测试如上)**

3.静态方法

动态:【应用 static,只能接口名调用,接口名.静态方法,定义接口可省略public】

  接口:   public interface 名{     static void run(){     System.out.println("跑起来~~~");    }   }  实现:不可重写  测试类:   public class Dom01{    public static void main(String[] args) {     //Animal.run(); // 【谬误】无奈继承办法,也无奈调用      LiveAble.run();

}
}

4. 公有办法和公有静态方法

公有办法:【应用 private ,只能在本地默认办法中调用,不能在静态方法中应用】
公有静态方法:【本地默认办法和静态方法能够调用】

   public interface 名{    default void func(){     func1();     func2();     func3();    }    【如果一个接口中有多个默认办法,并且办法中有反复的      内容,那么能够抽取进去,封装到公有办法中,供默认      办法 去调用。】    private void func1(){     System.out.println("跑起来~~~");    }    private void func2(){     System.out.println("跑起来~~~");    }    private static void func3(){       System.out.println("奥利给~~~");    }   }   
  • 接口的多实现

    一个类是能够实现多个接口的,这叫做接口的多实现。并且,一个类能继承一个父类,同时实现多个接口。extends关键字只须要应用一次,在其后跟着实现接口。 如下:
    class 类名 extends 父类名 implements 接口名1,接口名2... {
    // 重写接口中形象办法【必须】
    // 重写接口中默认办法【不重名时可选】
    }

    1.形象办法

    必须重写所有形象办法,有重名,只需重写一次。
    接口:

    interface A { public abstract void showA(); public abstract void show(); } interface B { public abstract void showB(); public abstract void show(); }

    实现:

     public class C implements A,B{ @Override  public void showA() {   System.out.println("showA");  } @Override public void showB() {   System.out.println("showB");   } @Override public void show() {  System.out.println("show");  }}

    2.默认办法

    如果默认办法有重名的,必须重写。
    接口:

    interface A { public default void methodA(){} public default void method(){}}interface B { public default void methodB(){} public default void method(){}}

    实现:

    public class C mplements A,B{ @Override public void method() {  System.out.println("method"); }}

    3.静态方法

    是只能通过各自接口名拜访静态方法。

  • 多继承

    类不能够多继承,但接口容许多继承,用extends屁股前面跟着继承接口。
    格局:
    public interface Hockey extends KPL,NBA
    舒适提醒
    父接口中的默认办法有重名,子接口须要重写一次哦。