Antara muka dan kelas abstrak digunakan untuk menentukan kontrak tingkah laku. Antara muka mentakrifkan tandatangan kaedah, manakala kelas abstrak mengandungi pengisytiharan dan pelaksanaan kaedah. Antara muka tidak boleh digunakan, tetapi kelas abstrak boleh. Kaedah dalam antara muka lalai kepada abstraksi awam, manakala kaedah dalam kelas abstrak lalai kepada abstraksi dilindungi. Antara muka digunakan untuk menentukan API biasa, manakala kelas abstrak digunakan untuk mencipta kelas asas dan menyediakan tingkah laku asas.
Penggunaan dan perbezaan antara muka dan kelas abstrak dalam Java
Pengenalan
Antaramuka dan kelas abstrak ialah dua konsep yang sangat penting dalam Java, tetapi kedua-duanya mempunyai kontrak yang berbeza kegunaan dan ciri.
Antaramuka
Contoh Kod:
public interface Drawable { void draw(); }
Kelas Abstrak
Contoh kod:
public abstract class Shape { protected String color; public abstract void draw(); }
Penggunaan
Antaramuka: Digunakan untuk menentukan API awam, seperti antara muka bersatu yang boleh dilaksanakan oleh berbilang kelas.
Drawable
boleh mewakili mana-mana kelas yang boleh dilukis, tanpa mengira pelaksanaan khusus. Drawable
接口可以表示任何可以绘制的类,而无需考虑具体的实现。抽象类:用于创建一个类的基类,并提供一些基本行为和状态,同时允许子类定制这些行为和状态。
Shape
抽象类可以提供一些形状的共同属性(如颜色),并定义一个抽象的 draw()
方法,用于子类实现具体的绘制行为。差异
实战案例
考虑一个自定义形状绘制应用程序,其中需要显示各种形状。
Drawable
接口来定义绘制方法。Rectangle
、Circle
等形状的类,这些类实现 Drawable
接口并提供自己的绘制实现。draw()
Shape
boleh menyediakan beberapa atribut biasa bagi bentuk (seperti warna) dan mentakrifkan kaedah draw()
abstrak untuk pelaksanaan subkelas Tingkah laku lukisan khusus . 🎜🎜🎜🎜Perbezaan🎜🎜🎜🎜Antara muka hanya mengandungi pengisytiharan kaedah, manakala kelas abstrak mengandungi kedua-dua pengisytiharan kaedah dan pelaksanaan. 🎜🎜Antara muka tidak boleh dibuat seketika, tetapi kelas abstrak boleh memperoleh subkelas. 🎜🎜Kaedah dalam antara muka adalah abstrak awam secara lalai, manakala kaedah dalam kelas abstrak dilindungi abstrak secara lalai. 🎜🎜🎜🎜Kes Praktikal🎜🎜🎜Pertimbangkan aplikasi lukisan bentuk tersuai di mana pelbagai bentuk perlu dipaparkan. 🎜🎜🎜Anda boleh mencipta antara muka Drawable
untuk menentukan kaedah lukisan. 🎜🎜Anda kemudiannya boleh membuat kelas bentuk seperti Rectangle
dan Circle
, yang melaksanakan antara muka Drawable
dan menyediakan pelaksanaan lukisan mereka sendiri. 🎜🎜Aplikasi boleh melingkar melalui pelbagai bentuk dan memanggil kaedah draw()
untuk memaparkannya. 🎜🎜Atas ialah kandungan terperinci Penggunaan dan perbezaan antara antara muka dan kelas abstrak dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!