Java基础:接口

Java基础:接口


接口

  • 接口(interface),在 Java 编程语言中是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法

  • 接口关键字 interface ,接口实现关键字 implements

  • 区别:

    • 普通类:只有具体实现
    • 抽象类:有具体实现和规范(抽象方法)
    • 接口:只有规范,接口无法自己写方法
  • 接口特性:

    • 接口中所有定义的方法都是抽象的,默认:public abstract

    • 接口中所有定义的属性都是常量,默认:public static final

    • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法

接口与类相似点:

  • 一个接口可以有多个方法
  • 接口文件保存在 .java 结尾的文件中,文件名使用接口名
  • 接口的字节码文件保存在 .class 结尾的文件中
  • 接口相应的字节码文件必须在与包名称相匹配的目录结构中

接口与类的区别:

  • 接口不能用于实例化对象
  • 接口没有构造方法
  • 接口中所有的方法必须是抽象方法
  • 接口不能包含成员变量,除了 static 和 final 变量
  • 接口不是被类继承了,而是要被类实现
  • 接口支持多继承

抽象类和接口的区别

  • 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行
  • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的
  • 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法
  • 一个类只能继承一个抽象类,而一个类却可以实现多个接口
  • 语法:

    [可见度] interface 接口名称 [extends 其他的接口名] {
            // 声明变量
            // 抽象方法
    }
    
  • 使用示例:

    • 接口1:
    //interface 定义的关键字,接口都需要有实现类
    public interface UserService {
    
        //常量 默认:public static final
        int age = 99;
    
        //接口中所有定义的方法其实都是抽象的 默认:public abstract
        void add(String name);
        void delete(String name);
        void update(String name);
        void query(String name);
    
    }
    
    • 接口2:
    public interface TimeService {
        void timer();
    }
    
    • 实现类:
    //类 可以实现接口 implements 接口
    //实现了接口的类,就需要重写接口的方法
    
    //多继承~ 利用接口实现多继承~
    public class UserServiceImpl implements UserService,TimeService {
    
        @Override
        public void add(String name) {
    
        }
    
        @Override
        public void delete(String name) {
    
        }
    
        @Override
        public void update(String name) {
    
        }
    
        @Override
        public void query(String name) {
    
        }
    
        @Override
        public void timer() {
    
        }
    }
    
    

Note:

接口的作用:
1.约束
2.定义一个方法,让不同的人实现
3.方法默认:public abstract
4.常量默认:public static final
5.接口不能被实例化,因为接口中没有构造方法
6.implements可以实现多个接口
7.必须要实现接口中的所有方法
8.接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字

posted @ 2021-04-12 21:28  D..T  阅读(69)  评论(0编辑  收藏  举报