欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java的接口,

来源: javaer 分享于  点击 24460 次 点评:208

java的接口,


接口这个概念比起前面的更难理解,有点像C++的头文件和虚函数。
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

接口的规定

接口中可以定义常量,不能定义变量。接口中的属性都会自动用public static final修饰,接口中的常量必须在定义时制定初始值。
接口中的方法都是抽象方法,自动调用public abstract修饰,接口也可以通过extends继承多个接口,但是不能继承类。
接口的实现类必须实现接口的全部方法,否则要定义抽象类
接口类型可以用来声明一个变量,可以成为空指针或是被绑定在一个此接口实现的对象。

接口与类对比

相同点:
有多个方法。
保存在.java文件,编译后保存在.class。
字节码文件必须在与包名称相匹配的目录结构中。

不同:
接口不能实例化。
接口没有构造方法。
接口中所有方法都是公有的隐式抽象方法。
接口中只有静态常量,static,final。
接口不是被类继承,而是要被类实现。
接口支持多继承。

说了这么多,实际上接口就是一种约定,一种规范,就是类的一张功能表。
A继承了B,但却想使用C的一个方法,但又不能再继承,所以就使用了C的接口。下面附上接口多继承的代码,方便理解

接着上次多态的代码修改,为灯类和电话类分别加一些功能,方便后面效果。

public void uselight(){
        System.out.println("可以照亮");
    }

电话

public void callphone(){
        System.out.println("可以打电话");
    }

下面分别为灯和电话编写接口

public interface Lighti {
    public boolean upele();
    public void uselight();
}

电话

public interface Phonei {
    public boolean upele();
    public void callphone();
}

然后再在两个类定义的最后用implements分别实现两个接口,然后定义高级手机接口继承前面的两个接口

public interface Adphonei extends Phonei,Lighti{
}

然后实现这个接口,编译器就会告诉你哪些方法需要重写,除了静态的,其他的方法自动给列在下面。

public class Adphone implements Adphonei {
    public Adphone(){
        System.out.println("高级手机在此");
    }

    @Override
    public boolean upele() {
        System.out.println("高级手机不用充电");
        return false;
    }

    @Override
    public void callphone() {
        System.out.println("高级呼叫");
    }

    @Override
    public void uselight() {
        System.out.println("高级照明");
    }
}

相关文章

    暂无相关文章
相关栏目:

用户点评