Java复习-20-接口(1)

接口的定义及使用

如果相对外部隐藏全部的实现细节,就要通过接口来实现。

接口的定义

使用interface关键字来定义。由于接口描述的是一个公共的定义标准,所以在接口之中所有的抽象方法的访问权限都为public

interface IMessage{ // 为了区分接口,接口名称前要加大写字母 I
    public static final String INFO = "HelloWorld"; // 全局常量
    public abstract String getInfo(); // 抽象方法
}

接口的实现

  • 接口需要被子类是按(implements),一个子类可以实现多个父接口;
  • 子类(如果不是抽象类)那么一定要覆写接口之中的全部抽象方法;
  • 接口对象可以利用子类对象的向上转型进行实例化。
class MessageImpl implements IMessage {
    public String getInfo(){
        return "得到一个消息。";
    }
}

多接口实现

在java中的主要目的是:一个子类可以实现多个接口(多继承)

interface IMessage{ // 为了区分接口,接口名称前要加大写字母 I
    public static final String INFO = "HelloWorld"; // 全局常量
    public abstract String getInfo(); // 抽象方法
}
interface IChannel {
    public abstract boolean connect();
}
class MessageImpl implements IMessage,IChannel {
    public String getInfo(){
        return "得到一个消息。";
    }
    public boolean connect() {
        System.out.println("消息发送通道已建立。");
    }
}

接口与接口,接口与Object的关系

实现了两个接口的子类,其实例化对象,可以向上转型为两个接口对象。

接口的多继承

interface IService extends IMessage,IChannel {
    public String service();
}

实际开发

实际开发中,接口的使用有三种形式:

  • 进行标准设置
  • 表示一种操作的能力
  • 暴露远程方法视图,这个一般都在RPC分布式开发中使用。

接口定义加强

假如当接口下的子类都需要新增 某一个相同的方法时,此时若子类数量很多,会造成代码修改成本增大。
对于该种情况,正确的方式是:子类在不应该直接实现该接口,而是中级使用一个抽象类进行过渡,由此便可以在抽象类中定义这样一个相同的普通方法了。
在这里插入图片描述

虽然在JDK的后续版本中支持了直接在接口中定义普通方法,甚至是static方法,但是其不应该作为接口的主要设计原则。
我们所写的代码中依然应该奉行:接口就是抽象方法的集合

使用接口定义标准

对于接口而言在开发之中最为重要的应用就是进行标准的制定
例如:电脑的USB口,就接收符合USB标准的输入,而不关心USB的外设是键盘、鼠标、打印机…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值