JavaRush /Java Blog /Random-TK /10 Abstrakt synplar we interfeýsler Java söhbetdeşlik sor...

10 Abstrakt synplar we interfeýsler Java söhbetdeşlik soraglary

Toparda çap edildi
Abstrakt synplar we interfeýsler obýekte gönükdirilen programmirleme dillerinde gaty meşhurdyr. Her Java söhbetdeşliginde diýen ýaly bu mowzukda iň bolmanda bir soraga duş gelýärsiňiz. Programma üpjünçiliginiň arasynda meşhurlygy sebäpli interfeýsler köplenç agzalýar, ýöne abstrakt synplar baradaky soraglar wagtal-wagtal ýüze çykýar. Ikinjiler, köplenç Java ösüşinde iki ýyldan köp tejribesi bolmadyk kiçi işläp düzüjiler wezipesi üçin dalaşgärlerden soralýar, interfeýsler baradaky soraglar köplenç dört ýyldan geçenler bilen geçirilen söhbetdeşliklerde ýüze çykýar. Adatça, Java dizaýn nagyşlary, bezeg ýa-da zawod nagyşlary ýaly beýleki soraglar bilen bilelikde soralýar. 10 Abstrakt synplar we interfeýsler Java söhbetdeşlik soraglary - 1Bu makalada, Java söhbetdeşlikleriniň dürli derejelerinde berlen abstrakt synplar we interfeýsler baradaky umumy soraglara serederis. Olaryň köpüsi hatda täze bir Java programmisti üçinem kyn bolmaly däl. Bular esasan arassa bilim soraglary, ýöne olaryň käbiri, Java-daky abstrakt synplaryň we interfeýsleriň arasyndaky tapawutlar ýa-da interfeýsiň üstünden abstrakt synpy haçan saýlamalydygy gaty kyn bolup biler. Bu mowzukda size onlarça gyzykly sorag hödürleýäris.
Söhbetdeşlikde size bir sorag berlen bolsa ýa-da abstrakt synplar we interfeýsler barada haýsydyr bir möhüm sorag bermeli bolsaňyz, ýöne bu sanawda ýok, teswirlerde paýlaşmagyňyzy haýyş edýäris.

1. Abstrakt synpyň Java-da konstruktorlary bolup bilermi?

Hawa, Java-da abstrakt synpda konstruktorlary yglan edip we kesgitläp bilersiňiz. Abstrakt synplaryň mysallaryny döretmek mümkin däldigi sebäpli, şeýle konstruktor diňe konstruktorlar zynjyryny emele getirende, ýagny belli bir ýerine ýetiriş synpynyň mysaly döredilende çagyrylyp bilner. Interviewöne söhbetdeşiň soň bir soragy berýändigini göz öňüne getiriň: her niçigem bolsa abstrakt synpyň mysalyny döredip bilmeseňiz, konstruktoryň näme manysy bar? Esasy zat, abstrakt synpda yglan edilen we dürli amallar tarapyndan ulanylýan umumy üýtgeýänleriň başlangyç bahalaryny kesgitlemek üçin ulanylyp bilner. Haýsydyr bir konstruktor yglan etmeseňizem, düzüji abstrakt synpa deslapky argumentsiz konstruktor goşar. Bu bolmasa, kiçi klassyňyz düzülmez, sebäbi islendik konstruktordaky ilkinji jümle super()Java-daky adaty superklass konstruktoryna aç-açan çagyryşdyr.

2. Java-da abstrakt sapaklar interfeýsleri amala aşyryp bilermi? Allhli usullary durmuşa geçirmelimi?

Hawa, abstrakt synplar interfeýsleri ulanyp bilerler implements. Abstrakt bolansoň, ähli usullary durmuşa geçirmek talap edilmeýär. Abstrakt esasy synpyň we görnüşini yglan etmek üçin interfeýsiň bolmagy maslahat berilýär. Mysal üçin interfeýs java.util.Listwe degişli abstrakt synp java.util.AbstractList. AbstractListCommonhli umumy usullary durmuşa geçirýändigi sebäpli , interfeýsi gönüden-göni durmuşa geçirenlerinde bolşy ýaly, belli bir ýerine ýetirişler ( LinkedListwe we ArrayList) ähli usullary durmuşa geçirmeli däl List. Bu çözgüt, umumy häsiýeti bir ýerde durmuşa geçirmek üçin abstrakt synpyň çeýeligi bilen görnüşi yglan etmek üçin interfeýsiň peýdasyny birleşdirýär. Joşua Bloçyň "Java" kitabynda . Netijeli programmirleme ” Java-da interfeýsleri we abstrakt sapaklary ulanmak mowzugynda ajaýyp bölüm bar, has gowy düşünmek üçin ony öwrenmegiň manysy bar.

3. Abstrakt synp gutarnykly bolup bilermi?

.Ok, edip bilmeýär. Açar söz, finalsynpyň iýerarhiýanyň başynda durýandygyny we nesilleriniň bolup bilmejekdigini aňladýar. Mirasdarlar bolmadyk abstrakt synp, wakuumdaky sferik at, sebäbi mysal döretmek mümkin däl abstract class. abstractŞeýlelik bilen, bir synp ikisem bolsa final, onda onuň nesli ýok we gyssagly bolup bilmez. Java düzüjisi synp etseňiz ýalňyşlyk goýberer abstractwe final.

4. Java-da abstrakt synpyň statiki usullary bolup bilermi?

Hawa, abstrakt synplar statiki usullary yglan edip we kesgitläp biler. Diňe Java-da statiki usullary döretmegiň umumy ýörelgelerine eýermeli, sebäbi obýekte gönükdirilen dizaýnda islenmeýär, sebäbi Java-da statiki usullary ýok etmek mümkin däl. Abstrakt synpdaky statiki usullar gaty seýrek, ýöne munuň üçin gowy sebäpler bar bolsa, olary ulanmagyňyza päsgel berýän zat ýok.

5. Abstrakt synpy gyssagly edip bolarmy?

, Ok, muny edip bilmersiň Abstrakt synpyň düýp manysy, onuň doly däldigi we onuň nesil synplarynda tamamlanmagydyr. .Agny, bu synp ulanmaga taýyn däl. Mysal üçin, käbir usullaryň durmuşa geçirilmegi ýetmezçilik edip biler. Synp ulanmaga taýyn däldigi sebäpli, obýekti döredip bolmaz. Emma abstrakt synpyň mirasdüşerleriniň mysallaryny döredip bilersiňiz. Bir programma abstrakt synpy çaltlaşdyrjak bolsa, Java düzüjisi ýalňyşlyk goýberer.

6. Abstrakt synpyň abstrakt usullary bolmagy zerurmy?

, Ok, abstrakt synpyň abstrakt usullary bolup bilmez. abstractJava-da deklarasiýasynda açar söz ulanyp, synp abstrakt edip bilersiňiz . Düzüji, bu synpyň dessine döredilmegine ýol bermezlik ýaly islendik gurluş çäklendirmelerini ýerine ýetirer. .Eri gelende aýtsak, abstrakt synpda ýa-da interfeýsde abstrakt usullaryň bolmalydygy baradaky sorag jedelli. Abstrakt synpyň abstrakt usullary bolmaly öýdýän, sebäbi abstrakt synpy göreninde programmistiň ilkinji pikir edýän zady. Bu garaşylmadyk ýagdaýlary azaltmak ýörelgesine laýyk gelýär.

7. Java-da abstrakt synp bilen interfeýsiň arasynda nähili tapawutlar bar?

Bu, iň möhüm we iň klassiki Java söhbetdeşlik soraglarynyň biridir. Bu soragy ähli derejedäki Java söhbetdeşliklerinde näçe gezek görendigimi sanap bilemok. Bu soragy gyzyklandyrýan zat, esasanam, arza berijä mysal getirmäge mümkinçilikdir. Abstraksiýa, encapsulýasiýa, polimorfizm we miras ýaly obýekte gönükdirilen programmirlemegiň esaslary baradaky soraglara jogap bermek aňsat, ýöne şeýle inçe nuanslar barada aýdylanda, iş gözleýänler köplenç bulaşýarlar we kellä gelen ilkinji zady aýdýarlar. Bu soraga jogap aýratyn makala mynasyp (esasanam Java 8 üýtgeşmelerinden soň), gysgaça:
  • public static finalInterfeýs diňe bir obýektiň özüni alyp barşyny (usullaryny) suratlandyrýar, ýöne abstrakt synpda bolup bilýän ýagdaýlary (meýdanlary) ýok .

  • Abstrakt synp miras galypdyr (giňeldilýär) we interfeýs amala aşyrylýar (durmuşa geçirilýär). Diňe bir synpy miras alyp bileris, ýöne isleýşimiz ýaly köp interfeýsi durmuşa geçirip bileris. Interfeýs başga bir interfeýsi / interfeýsi giňeldip (giňeldip) biler.

  • Abstrakt synplar "is-a" gatnaşygy bolanda ulanylýar, ýagny kiçi klas esasy abstrakt synpy giňeldýär we interfeýsler biri-birine düýbünden bagly bolmadyk dürli synplar tarapyndan amala aşyrylyp bilner.

8. Abstrakt synpy interfeýsden we tersine saýlamagyň haçan manysy bar?

Bu abstrakt synplar we interfeýsler boýunça öňki soraglaryň dowamy. Sintaktik tapawudynyň nämedigini bilýän bolsaňyz, bu soraga jogap bermek size kynçylyk döretmez, sebäbi karar bermekde kesgitleýji faktor. Çap edilen interfeýsde täze usul goşmak mümkin däl diýen ýaly, mundan beýläk ösüş üçin zerur bolan ýagdaýynda abstrakt synpy ulanmak has gowudyr. Java-da abstrakt sapaklary ösdürmek interfeýsleri ösdürmekden has aňsat. Edil şonuň ýaly-da, interfeýsde gaty köp usul bar bolsa we olary durmuşa geçirmek hakyky kelle agyry bolsa, deslapky durmuşa geçirmek üçin abstrakt synp döretmek has gowudyr. Bu nagyş Java kolleksiýa paketinde ýerine ýetirilýär, abstrakt synp AbstractListüçin başlangyç ýerine ýetiriş üpjün edilýär List. Abstrakt sapaklary ulanyň:
  • Closelyakyn baglanyşykly birnäçe synpyň arasynda kod paýlaşmak isleýärsiňiz.

  • publicAbstrakt synpyňyzy uzaldýan sapaklaryň köp usullarynyň ýa-da meýdanlarynyň bolmagy ýa-da başga (mysal üçin protectedwe ) başga üýtgeýjileri talap etmegine garaşarsyňyz private.

  • Statik däl ýa-da meýdanlary yglan etmek isleýärsiňiz не-final. Bu, degişli obýektiň ýagdaýyna girip we üýtgedip biljek usullary kesgitlemäge mümkinçilik berýär.
Interfeýsleri ulanyň:
  • Baglanyşyksyz synplaryň interfeýsiňizi durmuşa geçirmegine garaşýarsyňyz. Mysal üçin, interfeýsler Comparablewe Cloneableköp baglanyşyksyz synplar tarapyndan amala aşyrylýar.

  • Belli bir maglumat görnüşiniň özüni alyp barşyny kesgitlemek isleýärsiňiz, ýöne kimiň durmuşa geçirýändigi bilen gyzyklanmaýarsyňyz.

  • Birnäçe görnüşli mirasy ulanmak isleýärsiňiz.

9. Java-da abstrakt usul näme?

Abstrakt usul, bedensiz usuldyr. abstractUsul deklarasiýasynda açar söz ulanyp, usuly kesgitlemezden yglan edýärsiňiz . Java dilindäki interfeýsiň içinde yglan edilen ähli usullar abstrakt. Java-da abstrakt usulyň mysaly:
public void abstract printVersion();
Indi bu usuly durmuşa geçirmek üçin abstrakt synpy giňeltmeli we bu usuly ýok etmeli.

10. Java-da abstrakt synpda bir usul bolup bilermi main?

Hawa, Java-da abstrakt synpda bir usul bolup biler , sebäbi bu başga bir statiki usuldyr we abstrakt synpy gyssagly ulanmasaňyz, mainusul bilen ýerine ýetirip bolýar . mainIne, saňa aýtmak islän zadym. Rememberadyňyzdan çykarmaň: abstrakt synplar we interfeýsler obýekte gönükdirilen derňew we dizaýn prosesinde esasy dizaýn kararlary bolup, çeýe ulgam döretmek isleseňiz, elbetde seresaplylyk bilen ulanylmaly.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION