java接口的定义与实现

本文详细介绍了接口与类在编程中的区别,包括接口不能实例化、无构造方法、抽象方法要求、成员变量限制以及接口支持多继承的特点。通过实例展示了接口如何避免类名变化导致的问题,提高了代码的灵活性。
摘要由CSDN通过智能技术生成

接口与类

        编写接口的方式与类相似,但接口不同于类。二者最本质的区别便是类描述对象的属性和方法,而接口则包含类要实现的方法

接口与类的不同之处主要有:

1.接口不能用于实例化对象,但是可以被类实现,;
2.接口没有构造方法;
3.接口中所有的方法必须是抽象方法,Java 8 之后接口中可以使用 default 关键字修饰的非抽象方法;
4接口不能包含普.通成员变量,除了 static 和 final 变量;
5.接口不是被类继承了,而是要被类实现;
6.接口支持多继承,就是一个类可以继承多个接口;

接口的实现

//定义一个接口
interface Icount{
    public double countMoney(double salary,double bonus);
}
//实现接口
class Calculator1 implements Icount{
    public double countMoney(double salary, double bonus){
        return salary+bonus;
    }
}

我们这里用到了类Calculator1中的方法countMoney;但是如果我们将Calculator1的类名称改为Calculator2,Seller的Calculator1 calculator会报错,这是因为编译器找不到Calculator2类。

class Seller{
    String name;// 营业员的名称
    Icount calculator; // 这里使用接口声明
    public Seller(String name, Calculator1 calculator) {
        super();
        this.name = name;
        this.calculator = calculator;
    }
    // 计算的方法
    public void quote(double salary,double bonus){
        System.out.println(name+"说:您好:请支付"+calculator.countMoney(salary, bonus)+"元。");
    }
}

但是我们将Calculator1 calculator改为接口类型( Icount calculator ),不管类Calculator1的类名怎么改变,Seller都不会报错。可能说到这里还是有的小伙伴不太明白,我们举个例子:

比如类Calculator1是张三写的程序,Seller是李四写的程序,现在张三把类名改成了Calculator2,如果是类的方式李四用到了张三写的Calculator1,那么张三的程序就会报错,那么张三就要把就需要去修改自己的代码。但是用接口的方式实现张三就不需要修改自己的代码。

class Seller{
    String name;// 营业员的名称
    Icount calculator; // 这里使用接口声明
    public Seller(String name, Icount calculator) {
        super();
        this.name = name;
        this.calculator = calculator;
    }
    // 计算的方法
    public void quote(double salary,double bonus){
        System.out.println(name+"说:您好:请支付"+calculator.countMoney(salary, bonus)+"元。");
    }
}  

本文大多数思路来自  five_jade-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值