• java——接口


    接口

      概述:

        接口就是更深层次抽象类。接口中不能包含实现(静态常量除外)。

      语法:

        interface 接口名{接口成员;}

    // eg:
    public interface Comparable{
            int comparaTo(Object other);
    }

      说明:

        interface   :关键字,用于定义接口

        接口成员  :抽象方法(不需要使用abstract关键字)和静态常量

      作用:

        模板;子类的约束(也可以理解为规则)


    **为了让类实现一个接口,通常需要一下两个步骤:

    1. 将类声明为实现给定的接口
    2. 对接口中的所有方法进行定义

    接口的特性

    • 接口不是类,尤其不能使用new运算符实例化一个接口:x = new Comparable(...);//错误的
    • 然而,尽管不能构造接口对象,却能声明接口的变量:Comparable x;
    • 接口变量必须引用实现了接口的类对象:x = new Employee();
    • 同使用instanceof检查一个对象是否属于某个特定类一样,也可以使用instance检查一个对象是否实现了某个特定的接口:if(anObject instanceof Comparable){...}
    • 与类的继承关系一样,接口也可以被扩展。允许存在多态从具有较高通用性的接口到较高专用性的接口的链。如下例子:
      //Moveable()接口
      public interface Moveable{
          void move(double x,double y);
      }
      
      //可以以Moveable为基础扩展一个叫做Powered的接口
      public interface Powered extend Moveable{
          double milesPerGallon();
      }
      
      //虽然在接口中不能包含实例域或静态方法,但却可以包含常量。
      public interface Powered extends Moveable{
          double milesPweGallon();
          oduble SPEED_LIMIT = 88;
      }
      //与接口中的方法都自动的被设置为public一样,接口中的域被自动设为:public static final
      接口的扩展

    接口与抽象类

    接口与抽象方法基本上效果是一样的,为什么还要引入接口的概念呢?

    • 抽象类表示通用属性存在这样一个问题:每个类只能扩展于一个类。无法实现多个功能
    • 接口可以提供多重继承,同时还能避免多重继承的复杂性和低效率性。
  • 相关阅读:
    bzoj 3944 Sum
    [BZOJ2693]jzptab
    luogu 3768 简单的数学题
    [ZJOI2015]幻想乡战略游戏
    [SDOI2017]数字表格
    [ZJOI2007]Hide 捉迷藏
    [SDOI2016]游戏
    [SPOJ10707]Count on a tree II
    [Luogu4177][CEOI2008]order
    [BZOJ4491]我也不知道题目名字是什么
  • 原文地址:https://www.cnblogs.com/rsdqc/p/5350906.html
Copyright © 2020-2023  润新知