java为什么要用接口_为什么要使用接口-java

日常生活中,两个实体之间进行连接的部分称为接口。如电脑和 U 盘连接的标准 USB 接口。接口可以确保不同实体之间的顺利连接。如不同的电脑厂家和 U 盘厂家只要按照相同的 USB 接口进行生产,那么所有的电脑和 U 盘就可以顺利的连接起来。

(1)Java 编程领域中,接口可以为不同类顺利交互提供标准。例如:老师让学生张三和李四一起完成,java 程序来模拟营业员和计算器的行为。张三和李四进行工作分工,张三写计算机器,李四写营业员类。

张三和李四没有定义接口会出现的问题如下:

张三先定义了一个计算器类 Calculator 类并提供计算的方法, 注方法的名称

public class Calculator{

public double count(double salary,double bonus){

return salary+bonus;

}

}

李四定义了代表营业员的 Seller 类:注意这里计算器的方法

class Seller{

String name;// 营业员的名称

Calculator calculator;

public Seller(String name, Calculator calculator) {

super();

this.name = name;

this.calculator = calculator;

}

// 计算的方法

public void quote(double salary,double bonus){

System.out.println(name+"说:您好:请支付"+calculator.countMoney(salary, bonus)+"元。");

}

}

我们看到李四开发的时候想使用张三已经写好的计算器的类,李四想当然的认为计算钱的方法是 countMoney, 但是张三写计算器的时候使用的方法是 count, 那么李四的写的 Seller 类是错误的。

实现接口的好处如下:

为了保证张三和李四的书写的类可以正确的完成交互,李四定义了一个接口,并要求张三必须实现这个接口,接口的代码如下:

interface Icount{

public double countMoney(double salary,double bonus);

}

那么张三在写计算器 Calculator;类的时候,实现 Icount 接口必须重写接口中的抽象方法。

这里要注意,这里说明了,接口不是写实现类的程序员写的,而是需要这个实现类的功能、把写实现类的任务交给其他人的程序员写的

那么张三的代买就应该是如下的:

public class Calculator implemenets Icount{

public double countMoney(double salary,double bonus){

return salary+bonus;

}

}

这样就李四的代码就可以正常的执行了。

(2)接口可以降低类的依赖性,提高彼此的独立性

张三现在觉得计算器类的名字改成 SuperCalculator 更合适那么张三写的类代码就应该如下:

public class SuperCalculator implements Icount{

public double countMoney(double salary,double bonus){

return salary+bonus;

}

}

李四的代码如下注意这里计算的使用接口来声明:

class Seller{

String name;// 营业员的名称

Icount calculator; // 这里使用接口声明

public Seller(String name, Calculator calculator) {

super();

this.name = name;

this.calculator = calculator;

}

// 计算的方法

public void quote(double salary,double bonus){

System.out.println(name+"说:您好:请支付"+calculator.countMoney(salary, bonus)+"元。");

}

}

由以上的代码来看张三的类无论命名成什么李四的代码都不需要改,所以代码的依赖性降低,便于程序的维护。

这一点很关键,为了避免实现类的类型修改对调用的影响,声明的时候应该只声明接口的类型,相应的也只使用接口中定义的方法

(3)接口在使用的时候需要注意一下几点:

1)接口是系统中最高层次的抽象类型

接口本身必须十分稳定,接口一旦定制,就不允许随意修改,否则对接口实现类以及接口访问都会造成影响。(接口是需求的体现)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值