通过接口引用来调用不同的实现类。是什么意思,给出具体的代码并解释。并告诉我里面哪个是接口哪个是方法,哪个是实现类
时间: 2024-05-15 18:17:34 浏览: 62
通过接口引用来调用不同的实现类是面向对象编程中的一个重要概念。它的基本思想是:将代码中的具体实现与接口分离,使用接口来定义方法并在运行时动态地选择实现类。这样可以使代码更加灵活、可扩展和易于维护。
下面是一个示例代码:
```
interface Animal {
void makeSound();
}
class Dog implements Animal {
public void makeSound() {
System.out.println("汪汪汪!");
}
}
class Cat implements Animal {
public void makeSound() {
System.out.println("喵喵喵!");
}
}
public class Test {
public static void main(String[] args) {
Animal animal1 = new Dog(); // 使用接口声明变量,引用实现类
Animal animal2 = new Cat();
animal1.makeSound(); // 调用实现类方法
animal2.makeSound();
}
}
```
在上面的代码中,Animal 是一个接口,它定义了一个 makeSound() 方法;Dog 和 Cat 是实现类,它们都实现了 Animal 接口,并实现了 makeSound() 方法。
在 Test 类中,我们使用接口类型声明了两个变量 animal1 和 animal2,并分别用 Dog 和 Cat 的实例进行了初始化。这里体现了通过接口引用来调用不同的实现类的概念。
在调用 makeSound() 方法时,实际上是调用了 Dog 和 Cat 中的 makeSound() 方法,但是我们并没有直接使用 Dog 和 Cat 类型的变量,而是使用了 Animal 接口类型的变量,这样可以使代码更加灵活和可扩展。
因此,Animal 是接口,makeSound() 是接口中定义的方法,Dog 和 Cat 是实现类。
阅读全文