Java中的接口是怎么实现的

1.接口的定义及简单理解

接口( Interface ):确定了对特定对象所能发出的请求,或者对象接收消息的方式。
将“做什么”与“怎么做”分离;
接口中只声明方法(“做什么”,抽象方法)但不定义方法体(“怎么做”);
接口只规定了类的基本形式,不涉及任何实现细节,实现一个接口的类具有接口规定的行为;
接口可看作使用类的“客户”代码与提供服务的类之间的契约或协议。

2.接口定义=接口声明+接口体
 

2.1 接口声明

[public] interface 接口名 [extends 父接口列表] { 接口体 }
public / default:任意类均可使用 / 与该接口在同一个包中的类可使用
一个接口可以有多个父接口,子接口继承父接口的所有常量和方法

2.2 接口体

接口体=常量定义+方法定义
常量默认具有public, final, static属性
       类型 常量名=常量值;
方法默认具有public, abstract属性
       返回类型 方法名 ([参数列表]);

1.常量不能为空白final的
2.父接口中的常量可被子接口中的同名常量隐藏,父接口中的方法可被子接口中的方法重写
3.接口中成员不能使用的修饰符:transient, volatile, synchronized, private, protected
 

3.接口的使用——用类实现接口

1.类声明中的implements关键字
2.类可以使用接口定义的常量
3.类必须实现接口定义的所有方法
4.一个类可以实现多个接口,例:

 interface  I1{ … }
 interface  I2{ … }
 class  Sup { … }
 class C extends Sup implements I1,I2 { … }


5.Java的类继承只支持单继承(子类从单个父类继承),不支持多重继承(子类从多个父类继承)
  ---extends后的类名只能有一个
  ---类的继承关系形成树型层次结构
  ---接口的继承支持多重继承

6.类可以通过实现多个接口达到多重继承的效果
7.在进行单个父类与多个接口合并时,只有单个父类具有实现细节,从而避免代码冲突

8.通过继承扩展接口
  ---直接向接口中扩展方法可能带来问题:所有实现原来接口的类将因为接口的改变而不能正常工作
  ---不能向interface定义中随意增加方法,需要通过继承扩展接口,例如:

public interface StockWatcher {
 final String sunTicker = "SUNW";
 final String oracleTicker = "ORCL";
 void valueChanged(String tickerSymbol, double newValue);
 void currentValue(String tickerSymbol, double newValue);
}
public interface StockTracker extends StockWatcher {
    void currentValue(String tickerSymbol, double newValue);
}


 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值