假设你有一个Car
类和Vegetable
现实生活中不相关的类,并且有一个常见的行为叫做wash()
. 因为我们可以洗车,也可以洗菜。但是洗车和洗菜是完全不同的过程/行为。
例如:应该在厨房水槽下Car
用动力泵清洗。Vegetables
所以洗涤方式不同。因此,您将洗涤过程作为wash()
接口中的方法说,并Washable
在类中实现它们。Car
Vegetable
interface Washable {
public void wash();
}
public class Car implements Washable {
public void wash() {
// wash the car with a power pump
}
}
public class Vegetable implements Washable {
public void wash() {
// wash the vegetable under a kitchen sink
}
}
作为一个人,你会想洗车和洗菜。
public class Person {
Washable washableObject = new Car();
washableObject.wash();
washableObject = new Vegetable();
washableObject.wash();
}
所以接口是一种连接具有共同行为的不相关类的方法。但是行为将被不同地实现或将来可以改变。
有一天,您决定改变洗车方式。假设您购买了一台“洗车机”。所以实现wash()
在Car
类中的方法内部发生了变化。
公共类汽车实现可清洗{
public void wash() {
// wash the car with my new car washing machine !!
}
}
但是作为 Person ,您仍然调用该wash()
方法。方法的wash()
实现方式发生了变化(用你的新洗车机洗车),这个实现变化并没有影响你的Person
课程。
希望您清楚我们interfaces
现在使用的原因。