Saya bisa mengatakan saya berhubungan dengan itu. Ketika saya pertama kali mulai belajar tentang OO dan C #, saya juga tidak mendapatkan Antarmuka. Tidak apa-apa. Kami hanya perlu menemukan sesuatu yang akan membuat Anda menghargai kenyamanan antarmuka.
Biarkan saya mencoba dua pendekatan. Dan maafkan saya untuk generalisasi.
Coba 1
Katakanlah Anda penutur asli bahasa Inggris. Anda pergi ke negara lain di mana bahasa Inggris bukan bahasa ibu. Kamu butuh bantuan. Anda membutuhkan seseorang yang dapat membantu Anda.
Apakah Anda bertanya: "Hei, apakah Anda lahir di Amerika Serikat?" Ini warisan.
Atau apakah Anda bertanya: "Hei, apakah Anda berbicara bahasa Inggris"? Ini adalah antarmuka.
Jika Anda peduli tentang apa yang dilakukannya, Anda bisa mengandalkan antarmuka. Jika Anda peduli tentang apa itu, Anda mengandalkan warisan.
Tidak apa-apa mengandalkan warisan. Jika Anda membutuhkan seseorang yang berbicara bahasa Inggris, suka teh dan suka sepak bola, Anda lebih baik dilayani meminta orang Inggris. :)
Coba 2
Oke, mari kita coba contoh lain.
Anda menggunakan database yang berbeda dan Anda perlu menerapkan kelas abstrak untuk bekerja dengannya. Anda akan meneruskan kelas Anda ke beberapa kelas dari vendor DB.
public abstract class SuperDatabaseHelper
{
void Connect (string User, string Password)
}
public abstract class HiperDatabaseHelper
{
void Connect (string Password, string User)
}
Warisan berganda, katamu? Coba saja dengan case di atas. Kamu tidak bisa Kompiler tidak akan tahu metode Connect mana yang Anda coba panggil.
interface ISuperDatabaseHelper
{
void Connect (string User, string Password)
}
interface IHiperDatabaseHelper
{
void Connect (string Password, string User)
}
Sekarang, ada sesuatu yang dapat kita kerjakan - setidaknya dalam C # - di mana kita dapat mengimplementasikan antarmuka secara eksplisit.
public class MyDatabaseHelper : ISuperDatabaseHelper, IHiperDatabaseHelper
{
IHiperDataBaseHelper.Connect(string Password, string User)
{
//
}
ISuperDataBaseHelper.Connect(string User, string Password)
{
//
}
}
Kesimpulan
Contoh-contohnya bukan yang terbaik, tapi saya pikir itu intinya.
Anda hanya akan "mendapatkan" antarmuka saat Anda merasa membutuhkannya. Sampai mereka akan berpikir itu bukan untukmu.