val += 2; return val; } public void Reset() { val = start; prev = start - 2; } public void SetStart(int x) { start = x; val = start; prev = val - 2; } // ISeries interfeysida ko'rsatilmagan metod. public int GetPrevious() { return prev; } } Ko'rib turganingizdek, GetPrevious()metodini qo'shish uchun, ISeriesinterfeysida aniqlangan metodlarni amalga oshirishda o'zgarishlar qilishga to`g`ri keldi. Biroq, bu metodlar uchun interfeys aslicha qoldi, bunday o'zgarishlar hech qanday ta`sir qilmadi va mavjud kodni buzmadi. Bu interfeyslarning afzalliklaridan biridir. Yuqorida aytib o'tilganidek, interfeys har qanday sinflarda amalga oshirilishi mumkin. Misol sifatida, Primessinfi bir qator tub sonlarni aniqlaydi. Ushbu sinfdagi ISeries interfeysining amalga oshirilishi ByTwos sinfida amalga oshirishdan tubdan farq qilishiga e`tibor bering. // Tub sonlarni aniqlash jarayonini amalga oshirish uchun //iSeries interfeysidan foydalanish. class Primes : ISeries { int start; int val; public Primes() { start = 2; val = 2; } public int GetNext() { int i, j; bool isprime; val++; for(i = val; i < 1000000; i++) { isprime = true; for(j = 2; j <= i/j; j++) { if((i%j)==0) { isprime = false; break;