Dalam mengimplementasikan antarmuka, kami menggunakan sintaks antarmuka untuk memisahkan antarmuka dari definisi kelas dan membentuk subjek. antarmuka menyediakan spesifikasi antarmuka untuk kelas.
Dalam pewarisan, kami memperkenalkan mekanisme pewarisan untuk meningkatkan penggunaan kembali program. Warisan pada waktu itu didasarkan pada kelas. Antarmuka antarmuka juga dapat diwarisi untuk memperluas antarmuka asli.
Warisan antarmuka
Warisan antarmuka (inheritance) sangat mirip dengan pewarisan kelas, yaitu menambahkan prototipe metode antarmuka baru berdasarkan antarmuka yang diwarisi. Misalnya, kami menggunakan Cup sebagai antarmuka aslinya:
Copy kode kodenya sebagai berikut:
antarmuka Piala {
batalkan addWater(int w);
batalkan air minum(int w);
}
Berdasarkan pewarisan Piala, kami mendefinisikan antarmuka baru untuk cangkir dengan skala, MetricCup
Antarmukanya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
antarmuka MetricCup memperluas Piala
{
int Kandungan Air();
}
Kami telah menambahkan prototipe metode baru WaterContent(), yang mengembalikan bilangan bulat (jumlah air).
Warisan berganda antarmuka
Dalam pewarisan kelas Java, kelas turunan hanya dapat memiliki satu kelas dasar. Dengan kata lain, suatu kelas tidak dapat mewarisi lebih dari satu kelas secara bersamaan. Di Java, sebuah antarmuka dapat mewarisi lebih dari satu antarmuka secara bersamaan, yang disebut pewarisan berganda.
Misalnya, kami memiliki antarmuka Pemain berikut:
Copy kode kodenya sebagai berikut:
antarmuka Pemain
{
batal bermain();
}
Kami menambahkan antarmuka MusicCup baru. Ia memiliki antarmuka Cup dan antarmuka Player, dan menambahkan prototipe metode display().
Copy kode kodenya sebagai berikut:
antarmuka MusicCup memperluas Piala, Pemain
{
batalkan tampilan();
}
(Cara menggunakan antarmuka, lihat Implementasi Antarmuka)
kelas abstrak
Dalam hidup, kita memiliki beberapa konsep yang sangat abstrak. Konsep-konsep abstrak ini seringkali merupakan kumpulan dari banyak kelas, seperti:
1. Biji-bijian (bisa jagung, gandum, beras)
2. Grafik (bisa segitiga, lingkaran, kotak)
Untuk contoh lainnya, kami telah memberikan contoh sebelumnya:
1. Manusia (bisa laki-laki atau perempuan)
Saat mengatur hubungan seperti itu, kita dapat menggunakan warisan, seperti:
Menurut akal sehat kita:
1. Istilah “objek kelas Pangan” bersifat abstrak. Objek tersebut seharusnya termasuk dalam salah satu subkelas Jagung, Beras, dan Gandum.
2. Kelas Food memiliki metode eat() (makanan bisa dimakan). Namun, tindakan tersebut bersifat abstrak. Cara spesifik memakan makanan berbeda-beda. Misalnya jagung perlu dikupas dan dimakan, dan gandum perlu digiling menjadi tepung. Kita perlu mengganti metode makan() kelas Makanan di setiap kelas.
abstrak dan konkrit
Java menyediakan sintaks kelas abstrak untuk menggambarkan abstraksi kelas dan metodenya. Misalnya:
Copy kode kodenya sebagai berikut:
kelas abstrak Makanan {
abstrak publik batal makan();
kekosongan publik happyFood();
{
System.out.println("Bagus! Makan Aku!");
}
}
Metode dalam suatu kelas dapat dideklarasikan secara abstrak, seperti eat() di atas. Saat ini kita tidak perlu mendefinisikan metode secara spesifik, kita hanya perlu memberikan prototipe metode tersebut. Ini mirip dengan antarmuka. Ketika kita mewarisi kelas ini, misalnya di kelas Corn, kita perlu memberikan definisi spesifik dari metode makan().
Metode lain di kelas happyFood() tidak
Ketika metode abstrak muncul di kelas, kata kunci abstrak harus ditambahkan ke deklarasi kelas ini, jika tidak, Java akan melaporkan kesalahan. Kelas abstrak tidak dapat digunakan untuk membuat objek.
Warisan kelas abstrak
Kita bisa mewarisi kelas abstrak seperti halnya kelas. Kita harus menggunakan definisi metode yang lengkap untuk mencakup metode abstrak di kelas abstrak, jika tidak, kelas turunan masih merupakan kelas abstrak.
Kelas abstrak dapat memiliki anggota data dalam definisinya. Warisan anggota data sama dengan kelas normal.
Meringkaskan
warisan antarmuka, warisan berganda
metode abstrak, kelas abstrak