java 接口

Posted 流星雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 接口相关的知识,希望对你有一定的参考价值。

一.接口

  • 概念

    接口是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
    温馨提示
    父接口中的默认方法有重名,子接口需要重写一次哦。

以上是关于java 接口的主要内容,如果未能解决你的问题,请参考以下文章

从父片段到选项卡片段的接口侦听器不起作用

java中封装,继承,多态,接口学习总结

如何使用接口在片段和活动之间进行通信?

与另一个片段通信的片段接口

Java 封装

Java 封装