Antarmuka vs Kelas Abstrak di Java: Apa Bedanya?

Apa itu Interface?

Antarmuka adalah cetak biru yang dapat digunakan untuk mengimplementasikan kelas. Antarmuka tidak berisi metode konkret (metode yang memiliki kode). Semua metode antarmuka adalah metode abstrak.

Antarmuka tidak dapat dibuat instance-nya. Namun, kelas yang mengimplementasikan antarmuka dapat dibuat instance-nya. Antarmuka tidak pernah berisi variabel instan tetapi dapat berisi variabel final statis publik (yaitu, variabel kelas konstan)

Apa Itu Kelas Abstrak?

Kelas yang memiliki kata kunci abstrak dalam deklarasinya disebut kelas abstrak. Kelas abstrak harus memiliki setidaknya satu metode abstrak. , yaitu, metode tanpa tubuh. Ini dapat memiliki beberapa metode konkret.

Kelas abstrak memungkinkan Anda membuat cetak biru untuk kelas beton. Tetapi kelas yang mewarisi harus mengimplementasikan metode abstrak.

Kelas abstrak tidak dapat dibuat instance-nya.

Alasan Penting Menggunakan Antarmuka

  • Antarmuka digunakan untuk mencapai abstraksi.
  • Dirancang untuk mendukung resolusi metode dinamis pada waktu proses
  • Ini membantu Anda mencapai kopling longgar.
  • Memungkinkan Anda memisahkan definisi metode dari hierarki pewarisan

Alasan Penting Menggunakan Kelas Abstrak

  • Kelas abstrak menawarkan fungsionalitas default untuk subkelas.
  • Menyediakan template untuk kelas tertentu di masa mendatang
  • Membantu Anda menentukan antarmuka umum untuk subkelasnya
  • Kelas abstrak memungkinkan penggunaan kembali kode.

Antarmuka Vs. Kelas Abstrak

Kelas abstrak memungkinkan Anda membuat fungsionalitas yang dapat diterapkan atau ditimpa subkelas sedangkan antarmuka hanya mengizinkan Anda untuk menyatakan fungsionalitas tetapi tidak mengimplementasikannya. Sebuah kelas hanya dapat memperluas satu kelas abstrak sementara kelas dapat mengimplementasikan banyak antarmuka.

Parameter Antarmuka Kelas abstrak
Kecepatan Lambat Cepat
Beberapa Warisan Menerapkan beberapa Antarmuka Hanya satu kelas abstrak
Struktur Metode abstrak Metode abstrak & konkret
Kapan digunakan Peningkatan di masa depan Untuk menghindari kemerdekaan
Warisan / Implementasi Kelas A dapat mengimplementasikan banyak antarmuka Kelas hanya dapat mewarisi satu Kelas Abstrak
Implementasi Default Saat menambahkan hal-hal baru ke antarmuka, adalah mimpi buruk untuk menemukan semua pelaksana dan mengimplementasikan hal-hal yang baru didefinisikan. Dalam kasus Kelas Abstrak, Anda dapat memanfaatkan implementasi default.
Pengubah Akses Antarmuka tidak memiliki pengubah akses. Semua yang didefinisikan di dalam antarmuka diasumsikan sebagai pengubah publik. Kelas Abstrak dapat memiliki pengubah akses.
Kapan digunakan Lebih baik menggunakan antarmuka ketika berbagai implementasi hanya berbagi tanda tangan metode. Hierarki polimorfik tipe nilai. Ini harus digunakan ketika berbagai implementasi dari jenis yang sama berbagi perilaku yang sama.
Bidang data antarmuka tidak dapat berisi bidang data. kelas dapat memiliki bidang data.
Default Warisan Ganda Kelas A dapat mengimplementasikan banyak antarmuka. Kelas A hanya mewarisi satu kelas abstrak.
Penerapan Antarmuka bersifat abstrak sehingga tidak dapat memberikan kode apa pun. Kelas abstrak dapat memberikan kode default lengkap yang harus diganti.
Penggunaan pengubah Akses Anda tidak dapat menggunakan pengubah akses untuk metode, properti, dll. Anda dapat menggunakan kelas abstrak yang berisi pengubah akses.
Pemakaian Antarmuka membantu untuk menentukan kemampuan periferal suatu kelas. Kelas abstrak mendefinisikan identitas kelas.
Bidang yang ditentukan Tidak ada bidang yang dapat ditentukan Kelas abstrak memungkinkan Anda menentukan bidang dan konstanta
Warisan Antarmuka dapat mewarisi beberapa antarmuka tetapi tidak dapat mewarisi kelas. Kelas abstrak dapat mewarisi satu kelas dan beberapa antarmuka.
Pembuat atau perusak Antarmuka tidak dapat mendeklarasikan konstruktor atau destruktor. Kelas abstrak dapat mendeklarasikan konstruktor dan destruktor.
Batas Ekstensi Itu dapat memperluas sejumlah antarmuka. Itu hanya dapat memperluas satu kelas atau satu kelas abstrak dalam satu waktu.
Kata kunci abstrak Dalam kata kunci antarmuka abstrak, adalah opsional untuk mendeklarasikan metode sebagai abstrak. Dalam kelas abstrak, kata kunci abstrak wajib untuk mendeklarasikan metode sebagai abstrak.
Jenis kelas Antarmuka hanya dapat memiliki metode abstrak publik. Kelas abstrak memiliki metode abstrak dilindungi dan publik.

Kode contoh untuk Antarmuka dan Kelas Abstrak di Java

Berikut ini adalah contoh kode untuk membuat antarmuka dan kelas abstrak di Java

Sintaks Antarmuka

interface name{//methods}

Contoh Antarmuka Java:

interface Pet {public void test();}class Dog implements Pet {public void test() {System.out.println("Interface Method Implemented");}public static void main(String args[]) {Pet p = new Dog();p.test();}}

Sintaks Kelas Abstrak

abstract class name{// code}

Contoh kelas abstrak:

abstract class Shape {int b = 20;abstract public void calculateArea();}public class Rectangle extends Shape {public static void main(String args[]) {Rectangle obj = new Rectangle();obj.b = 200;obj.calculateArea();}public void calculateArea() {System.out.println("Area is " + (obj.b * obj.b));}}

Artikel yang menarik...