Kelas Konkrit di Jawa

1. Pengenalan

Dalam panduan ringkas ini, kita akan membincangkan istilah "kelas konkrit" di Jawa .

Pertama, kita akan menentukan istilah. Kemudian, kita akan melihat bagaimana ia berbeza dari antara muka dan kelas abstrak.

2. Apa itu Kelas Konkrit?

Kelas konkrit adalah kelas yang boleh kita buat dengan menggunakan kata kunci baru .

Dengan kata lain, ini adalah pelaksanaan sepenuhnya rangka tindakannya . Kelas konkrit selesai.

Bayangkan, sebagai contoh, kelas Kereta :

public class Car { public String honk() { return "beep!"; } public String drive() { return "vroom"; } }

Oleh kerana semua kaedahnya dilaksanakan, kami memanggilnya kelas konkrit, dan kami dapat menunjukkannya:

Car car = new Car();

Beberapa contoh kelas konkrit dari JDK adalah HashMap , HashSet , ArrayList , dan LinkedList .

3. Abstraksi Java vs Kelas Konkrit

Namun tidak semua jenis Java menerapkan semua metode mereka. Fleksibiliti ini, juga disebut abstraksi , memungkinkan kita untuk memikirkan secara lebih umum mengenai domain yang cuba kita modelkan.

Di Jawa, kita dapat mencapai abstraksi menggunakan antara muka dan kelas abstrak.

Mari kita lihat kelas konkrit dengan lebih baik dengan membandingkannya dengan yang lain.

3.1. Antara muka

Antaramuka adalah cetak biru untuk kelas . Atau, dengan kata lain, ini adalah koleksi tandatangan kaedah yang tidak dilaksanakan:

interface Driveable { void honk(); void drive(); }

Perhatikan bahawa ia menggunakan kata kunci antara muka dan bukannya kelas.

Oleh kerana Driveable mempunyai kaedah yang tidak dapat dilaksanakan, kami tidak dapat menjadikannya dengan kata kunci baru .

Tetapi, kelas konkrit seperti Car dapat melaksanakan kaedah ini.

JDK menyediakan sebilangan antara muka seperti Peta , Senarai , dan Set .

3.2. Kelas Abstrak

Kelas abstrak adalah kelas yang mempunyai kaedah yang tidak dilaksanakan, walaupun sebenarnya boleh mempunyai kedua-duanya:

public abstract class Vehicle { public abstract String honk(); public String drive() { return "zoom"; } }

Perhatikan bahawa kami menandakan kelas abstrak dengan kata kunci abstrak .

Sekali lagi, kerana Vehicle mempunyai kaedah yang tidak dilaksanakan, honk , kita tidak akan dapat menggunakan kata kunci baru .

Beberapa contoh kelas abstrak dari JDK adalah AbstractMap dan AbstractList .

3.3. Kelas Konkrit

Sebaliknya, kelas konkrit tidak mempunyai kaedah yang tidak dilaksanakan. Sama ada pelaksanaannya diwarisi atau tidak, selagi setiap kaedah mempunyai pelaksanaan, kelasnya konkrit.

Kelas konkrit semudah contoh Car kami lebih awal. Mereka juga dapat melaksanakan antara muka dan memperluas kelas abstrak:

public class FancyCar extends Vehicle implements Driveable { public String honk() { return "beep"; } }

The FancyCar kelas menyediakan pelaksanaan untuk membunyikan dan ia mewarisi pelaksanaan memandu dari kenderaan.

Oleh itu, ia tidak mempunyai kaedah yang tidak dilaksanakan . Oleh itu, kita dapat membuat contoh kelas FancyCar dengan kata kunci baru .

FancyCar car = new FancyCar();

Atau, secara sederhana, semua kelas yang tidak abstrak, kita boleh memanggil kelas konkrit.

4. Ringkasan

Dalam tutorial ringkas ini, kami belajar mengenai kelas konkrit dan spesifikasinya.

Selain itu, kami menunjukkan perbezaan antara antara muka dan kelas konkrit dan abstrak.