【Java基础09_3】接口

来源:互联网 发布:a5源码被骗 编辑:程序博客网 时间:2024/04/30 10:04

概述

  • 在人类社会中,人们通过学习会拥有不同的技能,每类人学的技能是不同的,学习计算机专业的人会编程,舞蹈家能够翩翩起舞,摄影师会拍照和后期修图。
  • 但是,并不是每个人都会编程,不是每个人都会跳舞,更不是每个人都会修图。
  • 如果把这些技能放到人类属性中,显然不合适。把这些技能放到Biology生物类中,那就更加不合适了。

因此,产生了接口,用于形容一类事物特有的“技能”。哪一类事物拥有该技能,就可以继承该接口。

特点

  1. 接口用关键字interface表示
    • 格式:

      interface 接口名 {}
  2. 类实现接口用implements表示
    • 格式:
      class 类名 implements 接口名 {}
  3. 接口不能直接实例化,但是可以通过多态的形式对其进行间接实例化!
    • 那么,接口如何实例化呢?
      • 按照多态的方式来实例化。
  4. 接口的子类
    • 可以是抽象类。但是意义不大。
    • 可以是具体类。要重写接口中的所有抽象方法。(推荐方案)
// 定义一个接口,里面是跳高的功能interface Jump {    // 额外的跳高的方法    public abstract void jump();    // 无参的构造方法    // public Jump() {}}// 猫类// 错误: Cat不是抽象的, 并且未覆盖Jump中的抽象方法jump()// abstract class Cat implements Jump {}class Cat implements Jump {    // 实现接口中未实现的方法    public void jump() {        System.out.println("哦,可以跳高了....");    }}// 测试类class InterfaceDemo {    public static void main(String[] args) {        // 创建接口的对象        // 错误: Jump是抽象的; 无法实例化        // Jump j = new Jump();        // 以多态的形式对Jump进行间接实例化        Jump jump = new Cat();        jump.jump();    }}

成员特点 (重点)

  • 成员变量:只能是常量,并且是静态的。
    • 默认修饰符:public static final
      • 建议:自己手动给出。
    • 构造方法:接口没有构造方法。
  • 成员方法:只能是抽象方法。
    • 默认修饰符:public abstract
      • 建议:自己手动给出。
原创粉丝点击