接口与类
编写接口的方式与类相似,但接口不同于类。二者最本质的区别便是类描述对象的属性和方法,而接口则包含类要实现的方法
接口与类的不同之处主要有:
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)+"元。");
}
}
本文详细介绍了接口与类在编程中的区别,包括接口不能实例化、无构造方法、抽象方法要求、成员变量限制以及接口支持多继承的特点。通过实例展示了接口如何避免类名变化导致的问题,提高了代码的灵活性。

被折叠的 条评论
为什么被折叠?



