Rumah  >  Artikel  >  Java  >  Kelas Abstrak di Jawa – Memecahkannya

Kelas Abstrak di Jawa – Memecahkannya

WBOY
WBOYasal
2024-09-04 06:46:32508semak imbas

Abstract Classes in Java – Breaking It Down

Apakah itu Kelas Abstrak?

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.

Mengapa Gunakan Kelas Abstrak?

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.

Mencipta Kelas Abstrak

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.

Melanjutkan Kelas Abstrak

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 lwn. Antara Muka

  • Warisan: Kelas boleh melanjutkan hanya satu kelas abstrak tetapi boleh melaksanakan berbilang antara muka.
  • Pelaksanaan Kaedah: Kelas abstrak boleh mempunyai kedua-dua kaedah abstrak (tanpa isi) dan kaedah yang dilaksanakan sepenuhnya. Antara muka (sebelum Java 8) hanya boleh mempunyai kaedah abstrak.
  • Pembina: Kelas abstrak boleh mempunyai pembina, manakala antara muka tidak boleh.

Pelaksanaan Separa

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().

Cabaran: Cuba Sendiri!

  1. Buat kelas abstrak yang dipanggil Kenderaan dengan kaedah abstrak startEngine().
  2. Buat dua kelas, Kereta dan Motosikal, yang memanjangkan Kenderaan dan melaksanakan kaedah startEngine().
  3. Tambahkan kaedah biasa pada Kenderaan, seperti stopEngine(), dan lihat cara ia berfungsi dalam kelas kanak-kanak.

Kesimpulan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn