接口

作者: 小疏林er | 来源:发表于2020-04-16 19:40 被阅读0次

1、接口

接口就是比抽象类还抽象的抽象类,可以更加规范的对子类进行约束。
接口的本质是契约,定义的是一组规则,就像法律一样,制定好了大家都要遵守。

  • 特性:
    (1)接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract,写不写都是这个(只能是 public abstract,其他修饰符都会报错)。
    (2)接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量,写不写都是这个(并且只能是 public,用 private 修饰会报编译错误)。
    (3)接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

2、接口的使用

(1)接口的声明
[访问修饰符] interface 接口名 [extends 父接口1,父接口2。。。]{
      常量定义      //一定是public static final
      方法定义      //一定是public abstract
}
(2)接口的实现
[访问修饰符] class 类名 implements 父接口{
      自己的变量、常量等等
      要实现的接口中的方法。。。。
}
(3)示例

我们想把猫、狗、猪的移动、吃等方法抽象出来进行规范,这时候只要定义一个抽象类Animal,并向其中添加动、吃等抽象方法,再由猫、狗等继承即可。

但是我们想把汽车、鸟、火箭、海马的移动方法抽象出来,再通过让他们继承抽象类的方式未免有些牵强,因为他们本就是风马牛不相及的几类东西,这时候让他们继承同一个类不太现实,并且海马、鸟本身还可能继承了Animal类,由于类是单继承的,所以它们不能再继承其他类了。所以这时候就需要用到接口了,因为他的抽象级别更高,通常用来抽象功能,这时候用接口就十分合适了。

  • Move.class(接口的后缀名也是class)
public interface Move {
    int Max_Speed = 100;        //public static final int
    int Min_Speed = 10;         //public static final int
    void move ();
}
  • Car.class
class Car implements Move{
    static String name = "拖拉机";
    @Override
    public void move() {
        System.out.println(name+"最大速度为"+Max_Speed);
    }
}
  • Bird.class
class Bird implements Move{
    String name = "小红";
    int Min_Speed = 20;
    @Override
    public void move() {
        System.out.println(name+"最小速度为"+Min_Speed);
    }
    
}
  • Test_Interface.class
public class Test_Interface {
    public static void main(String[] args) {
        Car c = new Car();      
        Bird b = new Bird();
        c.move();
//      c.Min_Speed = 1;  //final 常量不可更改
        b.move();
        b.Min_Speed  = 30;//父子存在同名变量,父类的变量将被隐藏,子类中此变量不是常量故可改
        b.move();
    }
}
注:
  • 子类的成员变量如果和父类的成员变量相同(包括类型不同)父类的成员变量将会被隐藏。
  • 常量不可修改,变量通常设成私有,然后通过get、set方法进行读写。


    image.png

3、接口和类的区别

  • 接口不能用来实例化对象。
  • 接口没有构造方法。
  • 接口支持多继承(只能继承其他接口),类只能单继承。

4、接口和抽象类的区别

  • 抽象类要被子类继承,接口要被类实现。
  • 抽象类主要用来抽象类别,接口主要用来抽象功能。(接口的抽象级别最高)
  • 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
  • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。

相关文章

  • 接口接口接口

    发现很多朋友对于接口都很纠结,阐述一下个人对接口的理解。 接口分为很多种类型,程序语言内部接口 移动端和服务端接口...

  • Android常用接口

    不知名接口 头条接口: 科技接口: 财经接口: 军事接口: 体育接口: 房产接口: 足球接口: 娱乐接口: 电影接...

  • 第十八天 微信微博天气接口

    分享接口 微信接口 微博接口 天气接口 mob接口

  • 接口测试概述

    接口(interface)的概念 常见接口名词 接口测试: 接口测试目的: 接口测试的重要性: 接口测试流程 接口...

  • 接口测试

    接口测试概念: 接口:接口是为了提供一种服务 所有的接口统称为API,接口分为内部接口和外部接口 外部接口:测试被...

  • 接口

    接口 接口类型 空接口 接口嵌套 接口断言 type关键字

  • 线程池原理

    Callable 接口 Runnable 接口 Future接口 RunnableFuture 接口 Future...

  • JMeter-一个接口的返回值作为输入传给其他接口

    背景: 在用JMeter写接口case,遇到一种情况,接口1查看列表接口,接口2查看详情接口,接口2需要传入接口1...

  • 用户操作接口

    登陆 接口地址 获取列表 接口地址 删除 接口地址 批量删除 接口地址 编辑用户 接口地址 添加用户 接口地址

  • JAVA中的集合框架 List (二)

    Collection接口List接口简介 Collection接口、子接口及其实现类,Collection接口是j...

网友评论

      本文标题:接口

      本文链接:https://www.haomeiwen.com/subject/ssjcvhtx.html