Kelas abstrak adalah seperti rangka tindakan untuk kelas lain. Anda tidak boleh mencipta objek secara langsung daripada kelas abstrak. Sebaliknya, anda menggunakannya sebagai asas untuk kelas lain yang boleh membinanya dan mengisi butirannya.
Kelas abstrak berguna apabila anda ingin menentukan konsep umum yang mempunyai beberapa ciri yang dikongsi, tetapi anda juga mahu meninggalkan ruang untuk butiran khusus yang boleh berbeza-beza dalam situasi yang berbeza. Sebagai contoh, anda mungkin mempunyai konsep umum "Haiwan" yang merangkumi ciri biasa seperti makan atau tidur, tetapi haiwan yang berbeza mungkin makan atau tidur dengan cara yang berbeza.
Begini cara anda boleh membuat kelas abstrak yang dipanggil Haiwan:
public abstract class Animal { abstract void makeSound(); // Abstract method, no body void sleep() { System.out.println("This animal sleeps."); } }
Dalam contoh ini, makeSound() ialah kaedah abstrak, bermakna ia belum mempunyai badan lagi. Kaedah sleep() bagaimanapun, dilaksanakan sepenuhnya.
Sekarang, mari buat beberapa kelas yang memanjangkan kelas Haiwan:
public class Dog extends Animal { void makeSound() { System.out.println("The dog barks."); } } public class Cat extends Animal { void makeSound() { System.out.println("The cat meows."); } }
Kedua-dua kelas Dog dan Cat mesti menyediakan versi kaedah makeSound() mereka sendiri, tetapi mereka mewarisi kaedah sleep() sebagaimana adanya.
Kelas abstrak sangat bagus apabila anda mempunyai beberapa kaedah yang harus dikongsi antara semua kelas kanak-kanak, tetapi anda juga mahu memaksa beberapa kaedah untuk ditakrifkan oleh kelas kanak-kanak tersebut.
public abstract class Bird extends Animal { void move() { System.out.println("The bird flies."); } }
Kini, mana-mana kelas yang memanjangkan Bird akan mewarisi kedua-dua kaedah move() dan kaedah sleep() daripada Animal, tetapi masih perlu melaksanakan makeSound().
Kelas abstrak di Java menyediakan cara untuk mencipta asas yang dikongsi untuk kelas yang berkaitan sambil memberi ruang kepada kelas tersebut untuk menentukan butiran khusus. Ia menyeimbangkan antara fungsi dan fleksibiliti dikongsi, menjadikan kod anda berkuasa dan boleh digunakan semula.
Atas ialah kandungan terperinci Kelas Abstrak di Jawa – Memecahkannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!