JAVA中 类和接口、接口和接口的关系
在Java中,类和接口是两种不同的结构,它们各自有其独特的用途和特性,但也存在密切的互动关系。下面将详细解释类和接口之间的关系,以及接口与接口之间的关系。

一、类和接口的关系

1‌.实现(Implements)‌:
类可以通过实现(implements)关键字来实现一个或多个接口。当一个类实现了一个 接口,它必须提供接口中所有方法的具体实现。例如:
【接口】
public interface Animal {
void eat();
void sleep();
}
【实现类】
public class Dog implements Animal {
public void eat() {
System.out.println("Dog is eating");
}
public void sleep() {
System.out.println("Dog is sleeping");
}
}
2.继承(Extends)‌:
类还可以通过继承(extends)关键字继承另一个类。当一个类继承另一个类时,它继 承了父类的属性和方法(除了构造方法、私有方法和初始化块)。例如:
【父类】
public class Animal {
void eat() {
System.out.println("Animal is eating");
}
}
【子类】
public class Dog extends Animal {
void bark() {
System.out.println("Dog is barking");
}
}
【子类继承父类同时实现一个或多个接口】

一个类可以同时继承一个类和实现一个或多个接口。例如:

public interface CanSwim {
void swim();
}
public class Fish extends Animal implements CanSwim {
public void swim() {
System.out.println("Fish is swimming");
}
}

二、接口与接口的关系

1.继承(Extends)‌:
一个接口可以继承另一个或多个接口。通过使用extends关键字,一个接口可以获取 另一个接口的所有方法签名(不包括实现),从而实现多重继承的效果。例如:
public interface Movable {
void move();
}
public interface Animal {
void eat();
}
public interface Pet extends Movable, Animal {
void play();
}
在这个例子中,Pet接口继承了MovableAnimal两个接口,因此它必须实现所有这些接口中的方法。
2‌.默认方法和静态方法‌:
Java 8引入了默认方法和静态方法到接口中,这进一步丰富了接口的功能。默认方法 允许接口中有具体实现的方法,而不需要实现类去实现这些方法。静态方法属于接口本身, 而不是实现类的实例方法。例如:
public interface Movable {
default void move() {
System.out.println("Moving");
}
static void stop() {
System.out.println("Stopped");
}
}
在这个例子中,move是一个默认方法,而stop是一个静态方法。任何实现了Movable接口的类都可以调用stop()方法,而不需要创建Movable的实例。默认方法可以被实现类重写。
通过以上说明,你可以看到类和接口在Java中是如何相互作用和相互补充的,从而构建出强大的面向对象结构。