"Hello, Amigo! Semalam awak dididik dengan cara kelas abstrak. Kini tiba masanya untuk mendalami ilmu kita. Saya nak ajar awak cara menggunakan kelas abstrak dengan betul."

Sukar untuk menghasilkan analogi dunia sebenar untuk kelas abstrak. Kelas biasanya merupakan model bagi sesetengah entiti. Tetapi kelas abstrak mengandungi kaedah yang belum dilaksanakan, dan boleh mengandungi kaedah yang telah dilaksanakan. Apakah maksudnya? Apakah analogi untuk kelas abstrak yang boleh kita temui? Adakah perkara seperti itu di dunia nyata?

Sebenarnya ada. Bayangkan casis kereta yang hampir siap pada tali pinggang penghantar. Saya boleh memasang sama ada enjin suped-up atau enjin yang sangat cekap. Sama ada bahagian dalam kulit atau upholsteri kain. Pelaksanaan khusus kereta itu belum ditentukan. Lebih-lebih lagi, casis boleh digunakan untuk menghasilkan beberapa pelaksanaan tertentu. Tetapi tiada siapa yang mahu kereta itu dalam bentuk semasa. Ini ialah kelas abstrak klasik : mencipta contoh itu tidak masuk akal, jadi anda tidak boleh menciptanya; kelas hanya masuk akal kerana banyak waris penuh yang akan diwujudkan berdasarkannya.

"Itu cukup mudah."

Tetapi mungkin terdapat analogi yang lebih abstrak. Lebih seperti antara muka dengan beberapa kaedah yang dilaksanakan. Sebagai contoh, pertimbangkan jurubahasa profesional . Tanpa menyatakan bahasa sumber dan sasaran, kami mempunyai « penterjemah abstrak ». Atau pertimbangkan pengawal peribadi. Kita mungkin tahu bahawa dia menguasai seni mempertahankan diri dan boleh melindungi pelanggannya. Tetapi seni mempertahankan diri yang mana dan bagaimana dia akan melindungi pelanggan adalah "butiran pelaksanaan" setiap pengawal peribadi tertentu.

Mari lihat contoh:

kod Java Penerangan
abstract class BodyGuard
{
 abstract void applyMartialArts(Attacker attacker);

 void shoot(Attacker attacker)
 {
    gun.shoot(attacker);
 }

 void saveClientLife(Attacker attacker)
 {
  if (attacker.hasGun())
     shoot(attacker);
  else
     applyMartialArts(attacker);
 }
}
Kelas BodyGuard menentukan cara menangani serangan: menembak atau menggunakan seni mempertahankan diri.

Walau bagaimanapun, seni mempertahankan diri khusus tidak dinyatakan, walaupun kami pasti bahawa kemahiran itu wujud.

Kita boleh mencipta beberapa pengawal peribadi yang berbeza (dengan mewarisi kelas ini). Kesemua mereka akan dapat melindungi pelanggan dan menembak penyerang.

"Kamu betul. Ia sama seperti antara muka dengan beberapa kaedah yang dilaksanakan."

"Ya, kelas abstrak jenis ini adalah biasa di kalangan kelas Java SE standard."