Interface接口

一、接口及作用

  接口是一个非常重要的概念,理解这个,先举一个实现生活中的实例。
  现在,电脑主板,有很多插槽,可用来插CPU、内存等。当CPU等元件需要更新换代升级时,只要将CPU单独更换就可以了,而不需要更换主板。其实,主板上的这些暴露在外的插槽,就可以理解为接口。

  接口就是对外暴露的规则,只要符合规则的CPU、内存,不论品牌、型号、规格,都可以安插使用。

  接口是程序的功能扩展。有了插槽,也就提高了主板的功能扩展性,比如内存不够用了,我们就可以换成内容最大的内存条,或再加新的内存条。

  接口降低了耦合性。有了规则,主板和CPU等元件的就分开了,可以分开生了。只要符合规则,元件就可以插入插槽进行使用。这样,主板厂商和CUP厂商之间的联系就少了。

二、接口的定义格式

  class 用于定义类。
  interface用于定义接口。

  接口中常见的定义:常量、抽象方法

  常量:public static final

  方法:public abstract

  接口中的成员都是public,而且这些修饰都是可以省略的,只要是interface,系统就会自动补足。

三、接口的特点

  接口不能直接创建对象

  类与类之间是“继承extends”。(因为父类中有非抽象内容,可以直接拿过来用)

  类与接口之间是“实现implements”。(因为接口内的成员都是抽象的,子类要将父类中的成员全都实现后,才可使用)

  接口与接口之间是“继承extends”。

  接口可以被类多实现,即一个类可以实现多个类。这是对JAVA不支持多继承的一种转换形式。

interface Inter {
    public static final int NUM = 3;

    public abstract void show();
}

class Test implements Inter // class是继承(因为父类中有非抽象内容,可以被子类调用)
                            // interface是实现(因为子类要全都将接口中的内容实例化后才能使用)
{
    public void show() {
    }
}

public class InterfaceDemo {

    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.NUM); // 对象可以调用成员
        System.out.println(Test.NUM); // 类可以调用成员。因为Test实现了Inter,相当于其中也有NUM
        System.out.println(Inter.NUM); // 接口可以调用成员

    }

}

多现实

interface Inter {                    //第一个接口
    public static final int NUM = 3;

    public abstract void show();
}

interface InterA {                    //第二个接口
    public abstract void method();
}

class Demo {
    public void myFunction() {
    }

}

// 类可以继承类同时实现多个接口,同时继承类。
//因为接口中的方法没有方法主休,所以可以多实现,由子类任意定义。
class Test extends Demo implements Inter, InterA
{
    public void show(){}    //复写接口内的所有方法

    public void method(){}    //复写接口内的所有方法
}
interface Inter {                    //第一个接口
    public static final int NUM = 3;

    public abstract void show();
}

interface InterA {                    //第二个接口
    public abstract void show();
}

class Test extends Demo implements Inter, InterA
{
    public void show(){}  //两个接口内的方法同名时,实现多接口时只要复写一次即可
}

接口之间是继承

interface A {                    //A有一个方法
    void methodA();
}

interface B extends A {            //B有两个方法
    void methodB();
}

interface C extends B {            //C有三个方法
    void methodC();
}

class D implements C{            //接口A继承B,B函数C,类D实现接口C,D中要复写3个方法
    public void methodA(){}
    public void methodB(){}
    public void methodC(){}
}
interface A {                    //A有一个方法
    void methodA();
}

interface B  {                  //B有一个方法
    void methodB();
}

interface C extends A、B {      //C有继承A、B
    void methodC();
}        
时间: 2024-08-27 00:41:17

Interface接口的相关文章

Interface接口的设置是由其他模块决定的

描述:我写了个登陆器   无非就是登陆和注册这2个功能,当然还有一个验证码功能 根据职责性,我登陆器不涉及任何用户有关操作. 但我需要规定用户模型必须有以下几个功能,我登陆器才能使用,登陆.注册.根据名字获取用户的个人信息. 所以我设置如下 <?php interface IMember {    /**   * 根据用户名获取用户信息 用户名不指定可以是邮箱.昵称或者手机号码   * @param String $username   */  public function getOneMem

java====interface接口

package cn.china; abstract class AbsDemo{ abstract void show1(); abstract void show2(); } /** *当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用 *另一种形式定义和表示,就是 接口 interface * *定义接口使用的关键字不是class,是interface. **/ interface Demo5{ public static final int NUMBER=4; public abs

Java知多少(39)interface接口

在抽象类中,可以包含一个或多个抽象方法:但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加“抽象”. 接口使用 interface 关键字来声明,可以看做是一种特殊的抽象类,可以指定一个类必须做什么,而不是规定它如何去做. 现实中也有很多接口的实例,比如说串口电脑硬盘,Serial ATA委员会指定了Serial ATA 2.0规范,这种规范就是接口.Serial ATA委员会不负责生产硬盘,只是指定通用的规范. 希捷.日立.三星等生产厂家会按照规范生产符合

as3.0 interface接口使用方法

[转]as3.0 interface接口使用方法 AS在2.0的时候就支持接口了 接口能够让你的程序更具扩展性和灵活性,打个例如 比方你定义了一个方法 代码: public function aMethod(arg:MyClass):void { .....} 參数 arg 的类型必须是 MyClass,由于我们须要在该方法中使用MyClass的API 而MyClass是一个类的话,你传入的对象必须是MyClass类的实例或者是MyClass子类的对象,可是当你要传入的一个对象,他既不是MyCl

golang中interface接口的深度解析

什么是interface,简单的说,interface是一组method的组合,下面这篇文章主要给大家深度解析了关于golang中的interface接口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 一 接口介绍 如果说gorountine和channel是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道亮丽的风景,那么接口是Go语言整个类型系列的基石,让Go语言在基础编程哲学的探索上达到前所

Adapter适配器中通过Interface接口响应回调

//回调接口 public interface BottomCallBackInterface {     public interface OnBottomClickListener {         void onBottomClick(View v, int position);     } } //适配器中引用该方法 private OnBottomClickListener mListener; public WaitTakingAdapter(Context context, Li

【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

1.什么是匿名内部类? 内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类. 2.为什么需要匿名内部类? 每个inner class都能够各自继承某一实现类(implementation).因此,inner class不受限于outer class是否已继承自某一实现类. 如果少了inner class所提供的"继承自多个具象(concrete)或抽象(abstract)类"的能力,设计上和编程上的某些问题会变得十分棘手. 所以,从某个角度来看inner cl

C#之interface接口

C#中接口与抽象类很相似,他们都无法实例化自己的对象,但是他们也有很重要的区别.Interface与Abstract class中,类不能多重继承,但是接口可以多重继承. 这段代码表明,声明接口的方法和继承接口之后要实现里面的未定义的方法 另外,一个类还可以继承多个接口,那样就要把接口中的所有函数都重新实现一次. 接口也可以实现扩展,这样可以是之前定义的接口重新得到使用.如下: 这样就可以通过ISorableAdd而不用再用ISorable来在类中继承了. 接口的多态(Polymorphism

interface(接口)

多个无关的类可以实现同一个接口. 一个类可以实现多个无关的接口. 与继承关系类似,接口与实现类之间存在多态性. 定义JAVA类的语法格式: < modifier> class < name > [extends < superclass >] [implements <interface>] [,<interface>* ]{ < declarations>* } 接口是抽象方法和常量值定义的集合. 从本质上讲,接口是一种特殊的抽象类