一、概念
1、接口是一个抽象类型,是抽象方法的集合,以interface来声明。一个类通常以继承接口的方式,来继承接口的抽象方法。
2、接口并不是类,类描述对象的属性和方法,接口则包含类要实现的方法。
3、接口无法被实例化,但可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
二、特点
1、一个接口可以保存多个方法。
2、接口不能用于实例化对象。
3、接口没有构造方法。
4、接口所有的方法必须是抽象方法。接口可以使用default关键字的非抽象方法。
5、接口不能包含成员变量,除了static和final变量。
6、接口不是被类继承了,而是要是被类实现。
7、接口中的每一个方法是隐式抽象的,接口中的方法会被隐式的指定为public abstract(只能是public abstract)。
8、接口中变量会被隐式的指定为public static final变量。
9、一个类只能继承一个抽象类,而一个类可以实现多个接口。
三、接口的声明
1、接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
2、接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。
3、接口中的方法都是公有的。
四、接口的实现
类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。
五、接口的继承
接口的继承使用extends关键字,子接口继承父接口的方法。
六、代码展示与注解
// 定义一个简单的接口
interface Shape {
double calculateArea();
}
// 实现接口的类
class Circle implements Shape {
private double radius;
// 构造函数
public Circle(double radius) {
this.radius = radius;
}
// 实现接口方法
public double calculateArea() {
return Math.PI * radius * radius;
}
}
// 另一个实现接口的类
class Rectangle implements Shape {
private double length;
private double width;
// 构造函数
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
// 实现接口方法
public double calculateArea() {
return length * width;
}
}
public class Main {
public static void main(String[] args) {
// 使用Circle类
Circle circle = new Circle(5);
System.out.println("Area of circle: " + circle.calculateArea());
// 使用Rectangle类
Rectangle rectangle = new Rectangle(4, 6);
System.out.println("Area of rectangle: " + rectangle.calculateArea());
}
}