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
    接口的扩展

接口与抽象类

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

  • 抽象类表示通用属性存在这样一个问题:每个类只能扩展于一个类。无法实现多个功能
  • 接口可以提供多重继承,同时还能避免多重继承的复杂性和低效率性。

 

posted on 2016-04-03 21:55  揉碎的青春  阅读(178)  评论(0编辑  收藏  举报

导航