JAVA的接口和实现类

在学习JAVA的过程中,我发现了如果要创建一个列表,往往使用下面这行代码。

List<?> list= new ArrayList<?>

那为什么是使用接口类型(List)指向具体的实现类ArrayList。这就要想到面向接口编程和多态性了。

1. 面向接口编程

通过面向接口编程,我们可以编写更加灵活和可扩展的代码,使用接口而不是具体的实现类,能够以使得代码不依赖某个具体的实现,这样在将来需要更改实现类的时候,只需要修改一处代码,不需要再整个项目中进行大量修改。

例如下面这段代码。

List<String> list = new ArrayList<>();
// 可以很容易地替换为其他实现
list = new LinkedList<>();

2. 多态性

接口允许我们可以利用多态性,可以让我们在一个函数中使用统一的方式去处理不同的实现类,这在设计模式和系统扩展中十分有用。

例如下面这段代码就用到了多态性。

public void processList(List<String> list) {
    // 处理list的代码
}

List<String> arrayList = new ArrayList<>();
List<String> linkedList = new LinkedList<>();
processList(arrayList);
processList(linkedList);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值