همانطور که می دانید اشیایی که از روی یک کلاس ساخته می شودند از طریق توابع آن کلاس با دنیای بیرون (دیگر کلاس ها) ارتباط برقرار می کنند. بطور مثال تلویزیونی را در نظر بگیرید که دکمه ی پاور آن عملکردی (تابعی) را درون تلویزیون منجر می شود. شما دکمه پاور را فشار می دهید و عملکردی داخل تلویزیون اتفاق می افتد. 

حال اگر بخواهیم یک اینترفیس را در دنیای برنامه نویسی در نظر بگیریم، بطور معمول این اینترفیس شامل چندین تابع می شود که پیاده سازی آن داخل تعریف اینترفیس وجود ندارد و کلاسی که اقدام به پیاده سازی آن می کند شامل پیاده سازی این توابع می شود. 

اینترفیس مرتبط با یک دوچرخه را در نظر بگیرید :

interface Bicycle {

// wheel revolutions per minute

void change Cadence(int newValue);

void changeGear(int newValue);

void speedUp(int increment);


void applyBrakes(int decrement);

}


حال برای اینکه این اینترفیس را توسط کلاس مورد نظر پیاده سازی کنیم :


class ACMEBicycle implements Bicycle {


    int cadence = 0;

    int speed = 0;

    int gear = 1;


   // The compiler will now require that methods

   // changeCadence, changeGear, speedUp, and applyBrakes

   // all be implemented. Compilation will fail if those

   // methods are missing from this class.


    void changeCadence(int newValue) {

         cadence = newValue;

    }


    void changeGear(int newValue) {

         gear = newValue;

    }


    void speedUp(int increment) {

         speed = speed + increment;   

    }


    void applyBrakes(int decrement) {

         speed = speed - decrement;

    }


    void printStates() {

         System.out.println("cadence:" +

             cadence + " speed:" + 

             speed + " gear:" + gear);

    }

}


پیاده سازی یک اینترفیس به یک کلاس کمک می کند رفتارهای فرمال و رسمی تری را از خود نمایش دهد. در حقیقت اینترفیس همچون قراردادی بین کلاس و دنیای بیرون می باشد که نشان می دهد این کلاس واجد شرایط عمل کردن به یک سری عملکردها می باشد.