Rumah Java javaTutorial Penggunaan dan perbezaan antara antara muka dan kelas abstrak dalam Java

Penggunaan dan perbezaan antara antara muka dan kelas abstrak dalam Java

May 01, 2024 am 09:42 AM
antara muka kelas abstrak

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.

Java 中接口和抽象类的用法和区别

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

  • Antara muka ialah kelas khas yang mentakrifkan satu set perkara untuk dilakukan (kaedah) tetapi tidak melaksanakan kaedah ini.
  • Ia adalah jenis abstrak semata-mata dan tidak boleh dibuat seketika.
  • Sebuah kelas yang melaksanakan antara muka mesti melaksanakan semua kaedah yang diisytiharkan dalam antara muka.
  • Antara muka boleh mewarisi antara muka lain, tetapi mereka tidak boleh mewarisi kelas.
  • Kaedah dalam antara muka adalah abstrak awam secara lalai.

Contoh Kod:

public interface Drawable {
    void draw();
}
Salin selepas log masuk

Kelas Abstrak

  • Kelas abstrak ialah kelas yang mengandungi kaedah abstrak dan kaedah konkrit.
  • Kaedah abstrak adalah kaedah yang hanya diisytiharkan tetapi tidak dilaksanakan.
  • Memajukan kelas abstrak akan memberikan pengecualian.
  • Kelas abstrak boleh mewarisi kelas lain atau kelas abstrak.
  • Kaedah dalam kelas abstrak dilindungi secara lalai.

Contoh kod:

public abstract class Shape {
    protected String color;
    public abstract void draw();
}
Salin selepas log masuk

Penggunaan

Antaramuka: Digunakan untuk menentukan API awam, seperti antara muka bersatu yang boleh dilaksanakan oleh berbilang kelas.

  • Sebagai contoh, antara muka Drawable boleh mewakili mana-mana kelas yang boleh dilukis, tanpa mengira pelaksanaan khusus. Drawable 接口可以表示任何可以绘制的类,而无需考虑具体的实现。

抽象类:用于创建一个类的基类,并提供一些基本行为和状态,同时允许子类定制这些行为和状态。

  • 例如,一个 Shape 抽象类可以提供一些形状的共同属性(如颜色),并定义一个抽象的 draw() 方法,用于子类实现具体的绘制行为。

差异

  • 接口只包含方法声明,而抽象类既包含方法声明也包含实现。
  • 接口不能实例化,而抽象类可以派生出子类。
  • 接口中的方法默认是公共抽象的,而抽象类中的方法默认是受保护的抽象的。

实战案例

考虑一个自定义形状绘制应用程序,其中需要显示各种形状。

  • 可以创建一个 Drawable 接口来定义绘制方法。
  • 然后可以创建 RectangleCircle 等形状的类,这些类实现 Drawable 接口并提供自己的绘制实现。
  • 应用程序可以遍历各种形状并调用 draw()
🎜Kelas abstrak🎜: Digunakan untuk mencipta kelas asas untuk kelas dan menyediakan beberapa gelagat dan keadaan asas, sambil membenarkan subkelas menyesuaikan gelagat dan keadaan ini. 🎜🎜🎜Sebagai contoh, kelas abstrak 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!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah antara muka dalaman papan induk komputer yang disyorkan pengenalan kepada antara muka dalaman papan induk komputer Apakah antara muka dalaman papan induk komputer yang disyorkan pengenalan kepada antara muka dalaman papan induk komputer Mar 12, 2024 pm 04:34 PM

Apabila kami memasang komputer, walaupun proses pemasangannya mudah, kami sering menghadapi masalah dalam pendawaian Selalunya, pengguna tersilap memasangkan talian bekalan kuasa radiator CPU ke SYS_FAN Walaupun kipas boleh berputar, ia mungkin tidak berfungsi apabila komputer dihidupkan. Akan terdapat ralat F1 "CPUFanError", yang juga menyebabkan penyejuk CPU tidak dapat melaraskan kelajuan secara bijak. Mari kita berkongsi pengetahuan bersama tentang antara muka CPU_FAN, SYS_FAN, CHA_FAN dan CPU_OPT pada papan induk komputer. Sains popular pada antara muka CPU_FAN, SYS_FAN, CHA_FAN dan CPU_OPT pada papan induk komputer 1. CPU_FANCPU_FAN ialah antara muka khusus untuk radiator CPU dan berfungsi pada 12V

Paradigma pengaturcaraan biasa dan corak reka bentuk dalam bahasa Go Paradigma pengaturcaraan biasa dan corak reka bentuk dalam bahasa Go Mar 04, 2024 pm 06:06 PM

Sebagai bahasa pengaturcaraan yang moden dan cekap, bahasa Go mempunyai paradigma pengaturcaraan yang kaya dan corak reka bentuk yang boleh membantu pembangun menulis kod yang berkualiti tinggi dan boleh diselenggara. Artikel ini akan memperkenalkan paradigma pengaturcaraan biasa dan corak reka bentuk dalam bahasa Go dan memberikan contoh kod khusus. 1. Pengaturcaraan berorientasikan objek Dalam bahasa Go, anda boleh menggunakan struktur dan kaedah untuk melaksanakan pengaturcaraan berorientasikan objek. Dengan mentakrifkan struktur dan kaedah mengikat kepada struktur, ciri berorientasikan objek bagi pengkapsulan data dan pengikatan tingkah laku boleh dicapai. packagemaini

Pengenalan kepada antara muka PHP dan cara mentakrifkannya Pengenalan kepada antara muka PHP dan cara mentakrifkannya Mar 23, 2024 am 09:00 AM

Pengenalan kepada antara muka PHP dan bagaimana ia ditakrifkan PHP ialah bahasa skrip sumber terbuka yang digunakan secara meluas dalam pembangunan Web Ia fleksibel, mudah dan berkuasa. Dalam PHP, antara muka ialah alat yang mentakrifkan kaedah biasa antara pelbagai kelas, mencapai polimorfisme dan menjadikan kod lebih fleksibel dan boleh digunakan semula. Artikel ini akan memperkenalkan konsep antara muka PHP dan cara mentakrifkannya, dan menyediakan contoh kod khusus untuk menunjukkan penggunaannya. 1. Konsep antara muka PHP Antara muka memainkan peranan penting dalam pengaturcaraan berorientasikan objek, mentakrifkan aplikasi kelas

Penyelesaian kepada NotImplementedError() Penyelesaian kepada NotImplementedError() Mar 01, 2024 pm 03:10 PM

Sebab ralat adalah dalam python Sebab mengapa NotImplementedError() dilemparkan dalam Tornado mungkin kerana kaedah atau antara muka abstrak tidak dilaksanakan. Kaedah atau antara muka ini diisytiharkan dalam kelas induk tetapi tidak dilaksanakan dalam kelas anak. Subkelas perlu melaksanakan kaedah atau antara muka ini untuk berfungsi dengan baik. Cara menyelesaikan masalah ini adalah dengan melaksanakan kaedah abstrak atau antara muka yang diisytiharkan oleh kelas induk dalam kelas kanak-kanak. Jika anda menggunakan kelas untuk mewarisi daripada kelas lain dan anda melihat ralat ini, anda harus melaksanakan semua kaedah abstrak yang diisytiharkan dalam kelas induk dalam kelas anak. Jika anda menggunakan antara muka dan anda melihat ralat ini, anda harus melaksanakan semua kaedah yang diisytiharkan dalam antara muka dalam kelas yang melaksanakan antara muka. Jika anda tidak pasti yang mana

Aplikasi antara muka dan kelas abstrak dalam corak reka bentuk di Jawa Aplikasi antara muka dan kelas abstrak dalam corak reka bentuk di Jawa May 01, 2024 pm 06:33 PM

Antara muka dan kelas abstrak digunakan dalam corak reka bentuk untuk penyahgandingan dan kebolehlanjutan. Antara muka mentakrifkan tandatangan kaedah, kelas abstrak menyediakan pelaksanaan separa, dan subkelas mesti melaksanakan kaedah yang tidak dilaksanakan. Dalam corak strategi, antara muka digunakan untuk menentukan algoritma, dan kelas abstrak atau kelas konkrit menyediakan pelaksanaan, membenarkan penukaran dinamik algoritma. Dalam corak pemerhati, antara muka digunakan untuk menentukan tingkah laku pemerhati, dan kelas abstrak atau konkrit digunakan untuk melanggan dan menerbitkan pemberitahuan. Dalam corak penyesuai, antara muka digunakan untuk menyesuaikan kelas yang sedia ada atau kelas konkrit boleh melaksanakan antara muka yang serasi, membenarkan interaksi dengan kod asal.

Wawasan ke dalam sistem Hongmeng: pengukuran fungsi sebenar dan pengalaman penggunaan Wawasan ke dalam sistem Hongmeng: pengukuran fungsi sebenar dan pengalaman penggunaan Mar 23, 2024 am 10:45 AM

Sebagai sistem pengendalian baharu yang dilancarkan oleh Huawei, sistem Hongmeng telah menimbulkan kekecohan dalam industri. Sebagai percubaan baharu Huawei selepas larangan AS, sistem Hongmeng mempunyai harapan dan harapan yang tinggi. Baru-baru ini, saya cukup bernasib baik untuk mendapatkan telefon mudah alih Huawei yang dilengkapi dengan sistem Hongmeng Selepas tempoh penggunaan dan ujian sebenar, saya akan berkongsi beberapa ujian berfungsi dan pengalaman penggunaan sistem Hongmeng. Mula-mula, mari kita lihat antara muka dan fungsi sistem Hongmeng. Sistem Hongmeng mengguna pakai gaya reka bentuk Huawei sendiri secara keseluruhan, yang mudah, jelas dan lancar dalam operasi. Di desktop, pelbagai

Pelaksanaan kelas dalaman antara muka dan kelas abstrak dalam Java Pelaksanaan kelas dalaman antara muka dan kelas abstrak dalam Java Apr 30, 2024 pm 02:03 PM

Java membenarkan kelas dalaman ditakrifkan dalam antara muka dan kelas abstrak, memberikan fleksibiliti untuk penggunaan semula kod dan modularisasi. Kelas dalaman dalam antara muka boleh melaksanakan fungsi tertentu, manakala kelas dalaman dalam kelas abstrak boleh mentakrifkan fungsi umum, dan subkelas menyediakan pelaksanaan konkrit.

Perbincangan mendalam tentang persamaan dan perbezaan antara antara muka berfungsi Golang dan kelas abstrak Perbincangan mendalam tentang persamaan dan perbezaan antara antara muka berfungsi Golang dan kelas abstrak Apr 20, 2024 am 09:21 AM

Kedua-dua antara muka berfungsi dan kelas abstrak digunakan untuk kebolehgunaan semula kod, tetapi ia dilaksanakan dengan cara yang berbeza: antara muka berfungsi melalui fungsi rujukan, kelas abstrak melalui warisan. Antara muka berfungsi tidak boleh dibuat instantiated, tetapi kelas abstrak boleh. Antara muka berfungsi mesti melaksanakan semua kaedah yang diisytiharkan, manakala kelas abstrak hanya boleh melaksanakan beberapa kaedah.

See all articles