接口基础

接口

  • 声明类的关键词是class,声明接口的关键词是interface
  • 接口的本质是契约,就像法律一样,制定好后需要大家遵守。
  1. 普通类:只有具体的实现

  2. 抽象类:具体的实现(正常方法)和规范(抽象方法)都有

  3. 接口:只有规范(抽象方法)!自己无法写正常方法(更抽象的抽象,专业的约束!约束和实现分离:面向接口编程

    • 定义接口的关键词:interface

      • public interface UserService {}

        image-20220911172325515 image-20220911171321822

接口中定义的属性都必须是常量,很少使用

  • public static final int AGE = 88;

    package com.oop.demo10;
    //interface  定义接口的关键字 ,接口都需要有实现类
    public interface UserService {
    
    //接口中所有定义的属性都是常量
       public static final int AGE = 98;
       int AGE1 = 88;
    }
    
    

接口中定义的方法必须是抽象方法,必须在实现接口时重写该方法

  • 通过abstract关键词定义在接口里的抽象方法

  • 接口里写正常方法是会报错的 public void run(){}

    • 接口1

      package com.oop.demo10;
      //interface  定义接口的关键字 ,接口都需要有实现类
      public interface UserService {
      
         // public void run(){}//接口里不让写正常方法
      //接口中的所有定义的方法都是抽象的  abstract
          public abstract void run1();
          //直接简化写法
          void add(String name);
          void del(String name);
          void update(String name);
          void query(String name);
      
      }
      
    • 接口2

      package com.oop.demo10;
      
      public interface TimeService {
          void time();
      }
      
    • 通过implement实现接口,必须重写抽象方法。(伪多继承)

      • 抽象类可以使用extends关键词实现子类对抽象父类的单继承,然后重写父类的抽象方法,但单继承有局限性。
      • 类 可以实现接口,通过implement关键词就可以使类实现接口,也必须重写接口里的抽象方法。
        • 实现接口的类必须要重写接口中的抽象方法。
      package com.oop.demo10;
      public class UserServiceImpl  implements UserService,TimeService{//利用接口实现多继承,继承了两个
          public UserServiceImpl() {
              super();
          }
      
          @Override
          public void run1() {
              
      
          }
      
          @Override
          public void add(String name) {
      
          }
      
          @Override
          public void del(String name) {
      
          }
      
          @Override
          public void update(String name) {
      
          }
      
          @Override
          public void query(String name) {
      
          }
      
          @Override
          public void time() {
      
          }
      }
      

接口的作用

  1. 接口是一个约束
  2. 可以在接口里定义一些抽象方法(public abstract),让不同的人实现(通过implement关键词,在类的重写)
  3. 接口不能直接别实例化,这点和抽象类一样,因为接口中没有构造方法
  4. 通过implement关键词可以同时实现多个接口,实现接口必须要重写里面的抽象方法,这也就是不同人一起实现接口的途径。
posted @ 2022-09-12 15:04  来自土木的一员  阅读(69)  评论(0)    收藏  举报