Rumah  >  Artikel  >  Java  >  Bila hendak menggunakan antara muka dan bila hendak menggunakan kelas abstrak dalam Java

Bila hendak menggunakan antara muka dan bila hendak menggunakan kelas abstrak dalam Java

王林
王林asal
2024-05-01 12:15:02690semak imbas

Bila menggunakan antara muka: Tentukan fungsi kongsi, dilaksanakan oleh pelbagai jenis objek. Tentukan antara muka panggil balik (seperti pendengar acara). Laksanakan pelbagai warisan. Bila hendak menggunakan kelas abstrak: Tentukan fungsi biasa yang dilaksanakan melalui pewarisan. Laksanakan pewarisan tunggal dan polimorfisme. Tentukan kaedah atau medan yang dilindungi.

Java 中何时使用接口何时使用抽象类

Bila menggunakan antara muka dan kelas abstrak dalam Java

Dalam Java, antara muka dan kelas abstrak ialah konsep abstrak yang digunakan untuk mentakrifkan kelakuan objek. Walaupun persamaan mereka, terdapat perbezaan yang jelas dalam tujuan penggunaannya.

Antaramuka

Antara muka ialah kontrak yang mengandungi tandatangan kaedah (iaitu pengisytiharan kaedah tanpa pelaksanaan). Ia mentakrifkan set kaedah awam yang mesti dilaksanakan oleh kelas.

Bila hendak menggunakan antara muka?

  • Tentukan fungsi biasa yang boleh dikongsi oleh pelbagai jenis objek.
  • Apabila anda perlu menentukan antara muka panggil balik, seperti pendengar acara.
  • Apabila pewarisan berbilang perlu dilaksanakan (tidak disokong dalam Java).
public interface Animal {
    void eat();
    void sleep();
}

Kelas Abstrak

Kelas abstrak ialah kelas separa abstrak yang mengandungi gabungan pelaksanaan kaedah dan kaedah abstrak. Kelas abstrak tidak boleh dijadikan instantiate, tetapi boleh diwarisi oleh subkelas.

Bila hendak menggunakan kelas abstrak?

  • Tentukan fungsi biasa yang hanya boleh dicapai melalui pewarisan.
  • Apabila anda perlu melaksanakan warisan tunggal dan polimorfisme.
  • Apabila anda perlu menentukan kaedah atau medan yang dilindungi.
public abstract class Mammal {
    public void giveBirth() { ... }
    public abstract void makeSound();
}
e

practical case

Interface

Create Antara muka bentuk dan tentukan kaedah awam untuk mengira kawasan dan perimeter:

public interface Shape {
    double getArea();
    double getPerimeter();
}
e

Gunakan antara muka ini untuk membuat kelas segi empat tepat dan bulatan:

public class Rectangle implements Shape {
    // ...
}

public class Circle implements Shape {
    // ...
}
ebstract Class

Buat kelas abstrak Bentuk dan tentukan kaedah yang dilindungi untuk mengira luas dan perimeter:

public abstract class Shape {
    protected double area;
    protected double perimeter;

    public abstract double getArea();
    public abstract double getPerimeter();
}

Buat kelas Segiempat dan Bulatan menggunakan kelas abstrak ini, mengatasi kaedah getArea() dan getPerimeter():

public class Rectangle extends Shape {
    // ...
}

public class Circle extends Shape {
    // ...
}

Atas ialah kandungan terperinci Bila hendak menggunakan antara muka dan bila hendak menggunakan kelas abstrak dalam Java. 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