برای مثال شما یک interface به نام Washable میسازی که شامل متدهای برای شتشوی هر Object است.هر کلاسی که این interface را پیاده سازی کند دارای قایلیت های washable خواهد بود.
حالا فرض کنید میخواهید متدی داشته باشید که ورودی های آن اشیایی از جنس قابلیت شتسشو باشند.به راحتی میتوانید نمونه هایی از کلاس هایی که اینترفیس washable را پیاده سازی کرده اند به این متد بفرستید:
interface Washable {
/**
* returns true if the object needs to be washed
*/
boolean needsWashing();
/**
* washes the object
*/
void wash();
}
class Cup implements Washable {
public boolean needsWashing() {
// No implementation yet...
// hard-code a return value so it will compile
return true;
}
public void wash() {
System.out.println("Washing a Cup.");
//...
}
//...
}
class Window implements Washable {
public void wash() {
System.out.println("Washing a Window.");
//...
}
//...
}
public void washObjects(Washable washable)
{
.......
}
Washable w = new Window();
Washable c = new Cup();
washObjects(w);
washObjects(c);