Rumah  >  Artikel  >  Java  >  Antara muka Java dan kelas abstrak: cara untuk mencapai penggunaan semula kod

Antara muka Java dan kelas abstrak: cara untuk mencapai penggunaan semula kod

PHPz
PHPzke hadapan
2024-03-27 19:31:281065semak imbas

Java 接口与抽象类:实现代码复用之道

"Antara Muka Java dan Kelas Abstrak: Cara Melaksanakan Penggunaan Semula Kod" ialah artikel yang ditulis dengan teliti oleh editor PHP Xiaoxin. Dari perspektif pengaturcaraan Java, artikel ini membincangkan secara mendalam kepentingan dan aplikasi antara muka dan kelas abstrak dalam penggunaan semula kod. Melalui analisis dan perbandingan kod contoh, ia membantu pembaca lebih memahami cara menggunakan antara muka dan kelas abstrak untuk mencapai penggunaan semula kod dan meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod. Artikel ini adalah bahan pembelajaran yang jarang berlaku untuk pembaca yang ingin mempelajari pengaturcaraan Java secara sistematik.

  • Antara muka hanya mengandungi kaedah abstrak dan tiada pelaksanaan konkrit.
  • Semua kaedah dalam antara muka secara tersirat diisytiharkan awam dan abstrak.
  • Sebuah kelas boleh melaksanakan berbilang antara muka.
  • Antara muka digunakan terutamanya untuk mentakrifkan kontrak dan menentukan gelagat yang mesti dilaksanakan oleh kelas.
  • Kaedah dalam antara muka tidak dilaksanakan dan oleh itu tidak boleh digunakan secara langsung. Ia mesti dilaksanakan oleh kelas yang melaksanakannya.

Kelas abstrak

  • Kelas abstrak boleh mengandungi kaedah abstrak dan kaedah konkrit.
  • Kaedah abstrak dalam kelas abstrak mesti dilaksanakan oleh subkelas.
  • Kaedah konkrit dalam kelas abstrak menyediakan pelaksanaan lalai.
  • Sebuah kelas hanya boleh mewarisi satu kelas abstrak.
  • Kelas abstrak sering digunakan untuk menentukan tingkah laku biasa dan menyediakan pelaksanaan separa.
  • Kaedah konkrit kelas abstrak boleh ditindih oleh subkelas, manakala kaedah abstrak mesti dilaksanakan.

Pilih antara muka atau kelas abstrak

Memilih antara muka atau kelas abstrak bergantung pada senario tertentu:

  • Jika anda perlu menentukan kontrak dan tidak memerlukan pelaksanaan khusus, pilih antara muka.
  • Jika anda perlu menentukan gelagat biasa dan menyediakan pelaksanaan separa, pilih kelas abstrak.
  • Jika anda memerlukan kelas untuk menyokong berbilang warisan, pilih antara muka.
  • Jika anda memerlukan kelas untuk mempunyai hierarki warisan yang lebih ketat, pilih kelas abstrak.

Guna semula kod

Melalui antara muka dan kelas abstrak, kami boleh mencapai penggunaan semula kod, mengurangkan lebihan dan meningkatkan fleksibiliti:

  • Antara muka membenarkan kelas yang berbeza untuk melaksanakan kontrak yang sama, sekali gus menggalakkan penggunaan semula kod dan kebolehpasangan.
  • Kelas abstrak menyediakan pelaksanaan separa dan subkelas boleh melanjutkan pelaksanaan ini dan menyesuaikan gelagat tertentu untuk mengelak daripada menulis kod yang sama berulang kali.

Polimorfisme

Antara muka dan kelas abstrak juga memudahkan polimorfisme, keupayaan untuk mengendalikan pelbagai jenis objek dengan cara yang seragam:

  • Jenis yang ditakrifkan oleh antara muka ialah jenis induk biasa bagi semua kelas yang melaksanakan antara muka.
  • Jenis yang ditakrifkan oleh kelas abstrak ialah jenis induk biasa bagi semua subkelas.
  • Ini membolehkan objek dikendalikan secara polimorf tanpa perlu risau tentang jenis konkritnya.

Contoh

Contoh antara muka:

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

Contoh kelas abstrak:

public abstract class Animal {
protected String name;

public abstract void speak();

public void eat() {
System.out.println("Animal is eating.");
}
}

Contoh penggunaan semula kod:

Kaedah

KelasCircleSquare通过实现Shape接口实现了getArea()getPerimeter(), dengan itu menggunakan semula kod untuk mengira luas dan perimeter sesuatu bentuk.

public class Circle implements Shape {
private double radius;

@Override
public double getArea() {
return Math.PI * radius * radius;
}

@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}

public class Square implements Shape {
private double side;

@Override
public double getArea() {
return side * side;
}

@Override
public double getPerimeter() {
return 4 * side;
}
}

Contoh polimorfisme:

Kita boleh menggunakan Shape类型的变量来存储CircleSquareobjek dan memanggil kaedahnya dalam cara polimorfik.

Shape shape1 = new Circle(5);
Shape shape2 = new Square(10);

System.out.println(shape1.getArea()); // 78.53981633974483
System.out.println(shape2.getPerimeter()); // 40.0

Dengan memanfaatkan antara muka dan kelas abstrak, Java pengaturcara boleh mencapai penggunaan semula kod dan polimorfisme, dengan itu menulis kod yang lebih fleksibel dan boleh diselenggara.

Atas ialah kandungan terperinci Antara muka Java dan kelas abstrak: cara untuk mencapai penggunaan semula kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam