JavaRush /Java Blog /Random-ID /Mengapa antarmuka diperlukan?
Павел
Level 11

Mengapa antarmuka diperlukan?

Dipublikasikan di grup Random-ID
Mengapa antarmuka dibutuhkan? Mengapa pewarisan antarmuka diperlukan? Mengapa polimorfisme diperlukan? Bagi yang membaca dan memahami cara membuat antarmuka, tetapi tidak mengerti alasannya.

Penafian: Dalam artikel ini dan artikel berikutnya, penamaan kelas dan metode akan diberikan dalam bahasa Rusia.

Jika membahas prinsip pemrograman berorientasi objek (OOP): polimorfisme, pewarisan, dan enkapsulasi, akan sangat membantu jika menggunakan analogi dunia nyata. Keuntungan besar dari OOP adalah kita dapat mensimulasikan bagian dari dunia nyata dalam sebuah program. Mari kita contohkan keluarga Ivanov: Ayah , Ibu dan anak laki-laki Petya . Dari Ayah, Petya mewarisi kebiasaan menyeruput saat minum teh, dan dari Ibu, ia mewarisi kebiasaan mengerucutkan bibir saat membaca. Jika kita mencoba mengimplementasikan situasi ini ke dalam sebuah program, kita akan mendapatkan tiga kelas:
class Папа
class Мама
class Петя
Ayah dan Ibu punya kebiasaan yang perlu diteruskan kepada Pete . Kebiasaan adalah semacam tindakan - jadi yang terbaik adalah menerapkannya di dunia perangkat lunak sebagai metode: Ayah Pertama :
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
    }
}
Sekarang Ibu :
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
   }
}
Jika kita berbicara tentang warisan, maka logis untuk menulis kode seperti ini:
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Artinya, mewarisi Petya dari Ayah dan Ibu sekaligus. Jika Anda menulisnya seperti ini, kompiler akan mengeluh karena Java tidak dapat mengimplementasikan pewarisan banyak kelas. Omong-omong, hal ini mungkin terjadi di C++, tetapi tidak di Java, karena masalah besar dapat muncul dengan pewarisan berganda: mereka menulis secara detail di Internet . Mengapa antarmuka diperlukan?  - 1Untuk menyiasati “kemustahilan” ini, Java memiliki antarmuka. Dan untuk kebiasaan kami akan membuat antarmuka kami sendiri. Bahkan dua: Mereka akan terlihat seperti ini:
public interface ПривычкиПапы {
    public void прихлюпывать();
}
public interface ПривычкиМамы {
    public void поджимать();
}
Di antarmuka, kami hanya mendeskripsikan kebiasaan, tetapi tidak menjelaskan apa yang secara spesifik dilakukannya, karena kami akan menulis implementasi spesifiknya di kelas. Pertama, mari kita beri tahu Ayah dan Ibu kebiasaan hukum mereka.
class Папа implements ПривычкиПапы {

   @Override
    public void прихлюпывать() {
     System.out.println("Хлюп");
   }
}

class Мама implements ПривычкиМамы{

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Dan sekarang, mentransfer kebiasaan dari Ayah dan Ibu ke Pete secara bersamaan adalah hal yang sah
class Петя implements ПривычкиПапы, ПривычкиМамы {

@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Artinya, implementasi ganda (lebih sering disebut implementasi) di Java sangat mungkin dilakukan. Mengapa antarmuka dibutuhkan?  - 2Arti antarmuka sekarang seharusnya jelas - di Java, Anda dapat mengimplementasikan pewarisan berganda menggunakan antarmuka. Jika kita mengembangkan situasinya lebih jauh, misalnya: Ayah dan Ibu mungkin memiliki kebiasaan yang tidak mereka wariskan kepada Petya , dan Petya mungkin juga memiliki kebiasaan pribadinya sendiri. Anda akan mempelajari cara memindahkan Santa Barbara yang penting ini ke pesawat Java di episode berikut. Ini bukan satu-satunya contoh untuk memahami antarmuka. Jika Anda belum membaca artikel berikut, pastikan untuk membaca: Antarmuka di Java (jika tidak terbuka, Anda dapat keluar dari profil Anda atau membaca dalam mode penyamaran) Mengapa antarmuka diperlukan di Java - terapkan semua contoh dari artikel di sini dan ubah metode baik di antarmuka maupun di kelas: nama metode, tanda tangan (apa yang diambil metode sebagai masukan), jenis metode keluaran. Pahami sendiri: - perbedaan saat mengimplementasikan antarmuka dengan kelas dan kelas abstrak; - metode bawaan.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION