我知道这里已经有很多关于接口的答案,但是我没有问任何关于接口的问题。我只是想理解下面提到的答案。
我知道什么是抽象类和接口,有什么区别,在哪里使用它们,以及如何使用它们。但是在看一些面试问题时,我遇到了这样一个问题,答案是这样的:
接口使一个类中的方法可以调用其他类的对象上的方法,而不需要知道这些对象的真实类,只要这些对象都是从实现一个或多个指定接口的类示例化的。换句话说,实现指定接口的类的对象可以作为泛型类型对象传递到其他对象的方法中,其他对象的方法可以通过首先将传入对象转换为接口类型来调用它们的方法。”
现在谁能用更简单的语言解释一下上面的答案是什么意思?
3条答案
按热度按时间jecbmhm31#
很简单,这意味着如果有一个方法将接口作为参数:
然后可以用实现该接口的任何类调用它。
zpf6vheq2#
接口使得一个类中的方法可以调用其他类的对象上的方法,而不需要知道这些对象的真实类,前提是这些对象都是从实现一个或多个指定接口的类示例化的。
如果一个类实现了一个接口,任何东西都可以调用该类上的接口方法,而不必关心实际的类是什么。e、 例如,可以将对象作为其某个接口的“示例”传递。
void fooey(Object o) {
if (o instanceof Fooable) {
((Fooable) o).foo();
}
}
m0rkklqb3#
下面是一个例子。
如果您有以下动物界面:
它由以下类实现:
然后你可以这样做:
在
whatDoesItEat
你不必担心你被传的是哪种动物。你只关心每个人实现IAnimal
接口,以便可以调用eat()
方法。