Kelas lan antarmuka abstrak banget populer ing kabeh basa pemrograman berorientasi obyek. Lan ing meh saben wawancara Jawa sampeyan nemokake paling ora siji pitakonan babagan topik iki. Antarmuka disebutake luwih kerep amarga popularitas ing antarane perancang piranti lunak, nanging pitakonan babagan kelas abstrak uga teka saka wektu kanggo wektu. Sing terakhir paling asring ditakoni saka pelamar kanggo posisi pangembang junior, ujare, kanthi pengalaman ora luwih saka rong taun ing pangembangan Jawa, dene pitakonan babagan antarmuka paling kerep ditemoni sajrone wawancara karo wong-wong sing pengalaman wis ngluwihi patang taun. Umume ditakoni bebarengan karo pitakonan liyane babagan pola desain Jawa, kayata pola Dekorator utawa Pabrik.
Ing artikel iki, kita bakal nliti pitakonan umum babagan kelas abstrak lan antarmuka sing dijaluk ing macem-macem tingkat wawancara Jawa. Umume ora angel sanajan kanggo programer Java sing anyar. Iki biasane pitakonan kawruh murni, nanging sawetara, kayata
beda antarane kelas abstrak lan antarmuka ing Jawa, utawa nalika
milih kelas abstrak liwat antarmuka , bisa dadi cukup angel. We offer sampeyan rolas pitakonan menarik ing topik.
Yen sampeyan wis nate ditakoni ing wawancara utawa kudu takon babagan kelas abstrak lan antarmuka, nanging ora ana ing dhaptar iki, kirimake ing komentar. |
1. Apa kelas abstrak bisa duwe konstruktor ing Jawa?
Ya, ing kelas abstrak ing Jawa sampeyan bisa ngumumake lan nemtokake konstruktor. Amarga ora bisa nggawe conto kelas abstrak, konstruktor kasebut mung bisa diarani nalika nggawe rantai konstruktor, yaiku, nalika nggawe conto kelas implementasi tartamtu. Nanging bayangake yen pewawancara banjur takon: apa gunane konstruktor yen sampeyan ora bisa nggawe conto kelas abstrak? Intine isih bisa digunakake kanggo nyetel nilai awal variabel umum sing diumumake ing kelas abstrak lan digunakake dening macem-macem implementasi. Sanajan sampeyan ora ngumumake konstruktor, kompiler bakal nambah konstruktor tanpa argumentasi standar menyang kelas abstrak. Tanpa iku, subclass sampeyan ora bakal kompilasi amarga statement pisanan ing sembarang konstruktor minangka telpon implisit
super()
kanggo konstruktor superclass standar ing Jawa.
2. Bisa kelas abstrak ing Jawa ngleksanakake antarmuka? Apa dheweke kudu ngetrapake kabeh cara?
Ya, kelas abstrak bisa ngetrapake antarmuka nggunakake
implements
. Amarga abstrak, mula ora kudu ngetrapake kabeh cara. Duwe kelas dhasar abstrak lan antarmuka kanggo ngumumake jinis kasebut minangka praktik sing disaranake. Conto yaiku antarmuka
java.util.List
lan kelas abstrak sing cocog
java.util.AbstractList
. Amarga
AbstractList
ngleksanakake kabeh cara umum, implementasi tartamtu (kayata
LinkedList
lan
ArrayList
) ora kudu ngleksanakake kabeh cara, kaya sing bakal ditindakake yen antarmuka
List
langsung dileksanakake. Solusi iki nggabungke entuk manfaat saka nggunakake antarmuka kanggo wara-wara jinis karo keluwesan saka kelas abstrak kanggo ngleksanakake kabeh prilaku umum ing sak panggonan. Ing buku Joshua Bloch
"Java. Pemrograman Efektif" duwe bab sing apik babagan topik nggunakake antarmuka lan kelas abstrak ing Jawa, kanggo pangerten sing luwih apik kanggo sinau.
3. Apa kelas abstrak bisa dadi final?
Ora, dheweke ora bisa. Tembung kunci
final
tegese kelas kasebut ana ing ndhuwur hirarki lan ora bisa duwe turunan. Lan kelas abstrak tanpa ahli waris minangka jaran bunder ing vakum, amarga ora bisa nggawe conto
abstract class
. Dadi, yen kelas loro
abstract
lan
final
, banjur ora duwe turunan lan ora bisa instantiated. Compiler Jawa bakal uncalan kesalahan yen sampeyan nggawe kelas
abstract
lan
final
.
4. Apa kelas abstrak ing Jawa bisa duwe metode statis?
Ya, kelas abstrak bisa ngumumake lan nemtokake cara statis. Sampeyan mung kudu tindakake prinsip umum nggawe cara statis ing Jawa, amarga padha undesirable ing desain obyek-oriented, amarga overriding cara statis ing Jawa ora bisa. Cara statis ing kelas abstrak arang banget, nanging yen ana alasan sing apik, ora ana sing ngalangi sampeyan nggunakake.
5. Apa bisa instantiate kelas abstrak?
Ora, sampeyan ora bisa nindakake iki. Inti saka kelas abstrak yaiku ora lengkap, lan kudu dirampungake ing kelas turunane. Tegese, kelas iki durung siyap dienggo. Contone, bisa uga ora ana implementasine sawetara cara. Amarga kelas ora siap digunakake, obyek kasebut ora bisa digawe. Nanging sampeyan bisa nggawe conto pewaris kelas abstrak. Compiler Java bakal mbuwang kesalahan yen program nyoba instantiate kelas abstrak.
6. Apa perlu kanggo kelas abstrak duwe metode abstrak?
Ora, kelas abstrak bisa uga ora duwe metode abstrak. Sampeyan bisa nggawe abstrak kelas ing Jawa mung nggunakake tembung kunci
abstract
ing deklarasi. Compiler bakal ngetrapake watesan struktural, kayata ora ngidini instantiations kelas iki digawe. Miturut cara, pitakonan apa kudu ana cara abstrak ing kelas abstrak utawa antarmuka kontroversial. Iku misale jek kula sing kelas abstrak kudu cara abstrak, awit iki bab pisanan programmer mikir nalika ndeleng kelas abstrak. Iki cocog karo prinsip nyilikake kejutan.
7. Apa bedane kelas abstrak lan antarmuka ing Jawa?
Iki minangka pitakonan wawancara Jawa sing paling penting lan paling klasik. Aku ora bisa ngitung kaping pirang-pirang aku ndeleng pitakonan iki ing wawancara Jawa ing kabeh tingkat. Sing nggawe pitakonan iki menarik yaiku, utamane, kesempatan kanggo pelamar menehi conto. Njawab pitakonan babagan dhasar pemrograman berorientasi obyek, kayata abstraksi, enkapsulasi, polimorfisme lan warisan, gampang, nanging nalika nerangake nuansa subtle kasebut, para pelamar kerja asring bingung lan ngomong bab pisanan sing ana ing pikirane.
Jawaban kanggo pitakonan iki pantes artikel sing kapisah (utamane sawise owah-owahan ing Jawa 8), nanging kanthi ringkes:
- Antarmuka njlèntrèhaké mung prilaku (cara) saka obyek, nanging ora duwe negara (kolom) (kajaba
public static final
), nalika kelas abstrak bisa duwe.
- Kelas abstrak diwarisake (ngluwihi), lan antarmuka diimplementasikake (dilaksanakake). Kita bisa oleh warisan mung siji kelas, nanging ngleksanakake minangka akeh antarmuka sing kita seneng. Antarmuka bisa ngluwihi (ngluwihi) antarmuka / antarmuka liyane.
- Kelas abstrak digunakake nalika ana hubungan "is-a", yaiku, subclass ngluwihi kelas abstrak dasar, lan antarmuka bisa dileksanakake dening kelas sing beda-beda sing ora ana hubungane karo saben liyane.
8. Nalika iku nggawe pangertèn kanggo seneng kelas abstrak kanggo antarmuka lan kosok balene?
Iki minangka lanjutan saka pitakonan sadurunge babagan kelas abstrak lan antarmuka. Yen sampeyan ngerti apa beda sintaksis, banjur njawab pitakonan iki ora bakal nimbulaké masalah, amarga iku faktor penentu kanggo nggawe keputusan. Wiwit iku meh mokal kanggo nambah cara anyar kanggo antarmuka diterbitake, iku luwih apik kanggo nggunakake kelas abstrak ing cilik saka kabutuhan potensial kanggo pembangunan luwih. Ngembangake kelas abstrak ing Jawa luwih gampang tinimbang ngembangake antarmuka. Kajaba iku, yen antarmuka wis akeh banget cara lan ngleksanakake kabeh dadi sirah nyata, iku luwih apik kanggo nggawe kelas abstrak kanggo implementasine standar. Pola iki diterusake ing paket koleksi Java, kelas abstrak
AbstractList
nyedhiyakake implementasi standar kanggo
List
.
Gunakake kelas abstrak yen:
- Sampeyan pengin nuduhake kode ing antarane sawetara kelas sing raket.
- Sampeyan bakal nyana kelas sing ngluwihi kelas abstrak duwe akeh cara utawa lapangan ing umum, utawa mbutuhake akses modifiers liyane saka
public
(contone, protected
lan private
).
- Sampeyan pengin ngumumake non-statis utawa
не-final
kolom. Iki ngidini sampeyan nemtokake cara sing bisa ngakses lan ngganti kahanan obyek kasebut.
Gunakake antarmuka yen:
- Sampeyan ngarepake kelas sing ora ana hubungane kanggo ngetrapake antarmuka sampeyan. Contone, antarmuka
Comparable
lan Cloneable
dileksanakake dening akeh kelas sing ora ana hubungane.
- Sampeyan pengin nemtokake prilaku jinis data tartamtu, nanging sampeyan ora peduli sapa sing ngetrapake.
- Sampeyan pengin nggunakake sawetara jinis warisan.
9. Apa kang diarani metode abstrak ing basa Jawa?
Metode abstrak yaiku metode tanpa awak. Sampeyan mung ngumumake metode tanpa nemtokake, nggunakake tembung kunci
abstract
ing deklarasi metode. Kabeh cara sing diumumake ing antarmuka ing basa Jawa minangka abstrak kanthi standar. Ing ngisor iki conto metode abstrak ing basa Jawa:
public void abstract printVersion();
Saiki, kanggo ngleksanakake metode iki, sampeyan kudu ngluwihi kelas abstrak lan ngilangi metode iki.
10. Apa kelas abstrak ing Jawa bisa ngemot metode main
?
Ya, kelas abstrak ing Jawa bisa ngemot metode
main
, amarga iki mung cara statis liyane, lan kelas abstrak bisa dieksekusi nggunakake metode kasebut
main
, anggere sampeyan ora instan. Mung kuwi sing dakkarepake marang kowe. Lan elinga: kelas abstrak lan antarmuka minangka pancasan desain tombol ing analisis lan proses desain berorientasi obyek, lan kudu digunakake kanthi ati-ati, mesthi, yen sampeyan pengin nggawe sistem sing fleksibel.
GO TO FULL VERSION