zoukankan      html  css  js  c++  java
  • 接口

    有时必须从几个类中派生出一个子类,继承它们所以的属性和方法。但是java不支持多重继承。有了接口,就可以得到多重继承的效果。

    接口是抽象方法和常量的定义的集合。

    从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

    实现接口类:class SubClass implements Interface{    }

    一个类可以实现多个接口,接口也可以继承其它接口。

    接口的特点:

      用interface来定义。

      接口中所有的成员变量都默认是由public static final修饰的。

      接口中的所有方法都默认是由public abstract修饰的。

      接口没有构造方法。

      接口采用多层继承机制。

    接口定义举例

      public interface Runner{

      int D = 1;  ↔  public static final int D = 1;

      void start();  ↔  public abstract void start();

      public void run();  ↔  public abstract void run();

      void stop();  ↔  public abstract void stop();

    }

    实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例化,否则仍为抽象类。

    接口的主要用途就是被实现类实现。

    接口与继承关系类似,与实现类之间存在多态性。

    定义java类的语法格式:先写extend,后写implements。

    抽象类在新增抽象方法的时候存在的问题:

      父类新增一个抽象方法,继承这个父类的子类就必须实现父类新增的抽象方法,不然的话,子类只能改成抽象类。

    接口解决问题:

      因为有时确实需要给父类中途再加一些方法,那么不能直接从父类下手,只能新建一个接口,在接口上扩展方法,其他需要的子类自行去实现接口。

    一个类可以实现多个无关的接口。

    与继承关系类似,接口与实现类之间存在多态性。

    接口的其他问题

      如果实现接口的类中没有实现接口中的全部方法,必须将此类定义为抽象类。

      接口也可以继承另一个接口,使用关键字extends。

    抽象类是对于一类事物的高度抽象,其中既有属性也有方法。接口是对方法的抽象,也就是对系列动作的抽象。

    当需要对一类事物抽象的时候,应该使用抽象类,好形成一个父类。

    当需要对一系列动作抽象,就使用接口,需要使用这些动作的类去实现相应的接口即可。

  • 相关阅读:
    学而时习之,不亦乐乎。
    uva10025 The ? 1 ? 2 ? ... ? n = k problem
    uva591 Box of Bricks
    uva253 Cube painting
    uva10194 Football (aka Soccer)
    用WORD2007发布博客文章
    Microsoft Silverlight 1.0 SDK 中文版推出
    vista sp1/office 2007 sp1和xp sp3都出来了
    scrollLeft,scrollWidth,clientWidth,offsetWidth,screen.width全解析(转帖)
    在C#中使用My命名空间
  • 原文地址:https://www.cnblogs.com/fangfangfanga/p/12142180.html
Copyright © 2011-2022 走看看