JavaRush /Java Blog /Random-TK /Näme üçin interfeýsler gerek?

Näme üçin interfeýsler gerek?

Toparda çap edildi
Näme üçin interfeýsler gerek? Näme üçin interfeýs mirasy zerur? Polimorfizm näme üçin zerur? Interfeýs ýasamagy okaýan we düşünýänler üçin, ýöne sebäbine düşünmedikler üçin.

Düşündiriş: Bu makalada we ondan soňky bölümlerde synplaryň we usullaryň atlary rus dilinde berler.

Obýekte gönükdirilen programmirleme (OOP) prinsipleri barada aýdylanda: polimorfizm, miras we encapsulation, hakyky dünýädäki meňzeşlikleri ulanmak peýdalydyr. OOP-nyň uly artykmaçlygy, hakyky älemiň bir bölegini bir programmada simulasiýa etmekdir. Iwanow maşgalasyna nusga alalyň: Kaka , Eje we oglan Petýa . Petýa kakasyndan çaý içip otyrka endik etdi, ejemden bolsa okaýarka dodaklaryny yzarlamak endigini miras aldy . Bu ýagdaýy bir programma durmuşa geçirmäge synanyşsak, üç synp bilen gutararys:
class Папа
class Мама
class Петя
Kakam bilen ejemiň Pite geçmeli endikleri bar . Endikler haýsydyr bir hereketdir, şonuň üçin olary programma üpjünçiligi dünýäsinde usul hökmünde durmuşa geçirmek iň gowusy: Kaka Ilki :
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
    }
}
Indi eje :
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
   }
}
Miras hakda aýdýan bolsak, şunuň ýaly kod ýazmak mantykly:
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Petagny, Petýany şol bir wagtyň özünde kakamdan we ejemden miras almak . Şeýle ýazsaňyz, düzüjisi arz eder, sebäbi Java-da birnäçe synp mirasyny durmuşa geçirip bilmersiňiz. Theeri gelende aýtsak, C ++ görnüşinde bolup biler, ýöne Java-da däl, sebäbi köp miras bilen uly meseleler ýüze çykyp biler: internetde jikme-jik ýazýarlar . Bu “mümkin däl” meseläni çözmek üçin Java interfeýsleri bar. Endikler üçin bolsa öz interfeýsimizi taparys. Hatda ikisi: Olar şeýle görünerler: Näme üçin interfeýsler gerek?  - 1
public interface ПривычкиПапы {
    public void прихлюпывать();
}
public interface ПривычкиМамы {
    public void поджимать();
}
Interfeýsde diňe endikleri suratlandyrdyk, ýöne näme edýändiklerini beýan etmedik, sebäbi anyk ýerine ýetirişleri synplarda ýazarys. Ilki bilen, kakama we ejeme kanuny endiklerini bereliň .
class Папа implements ПривычкиПапы {

   @Override
    public void прихлюпывать() {
     System.out.println("Хлюп");
   }
}

class Мама implements ПривычкиМамы{

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Indi bolsa, endikleri bir wagtyň özünde kakamdan we ejemden Pite geçirmek düýbünden kanuny
class Петя implements ПривычкиПапы, ПривычкиМамы {

@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Javaagny, Java-da köp ýerine ýetirmek (köplenç ýerine ýetiriş diýilýär) mümkin. Näme üçin interfeýsler gerek?  - 2Interfeýsleriň manysy indi düşnükli bolmaly - Java-da interfeýsleri ulanyp birnäçe mirasy durmuşa geçirip bilersiňiz. Theagdaýy hasam ösdürsek, mysal üçin: ahyrsoňy, kakam bilen ejemiň Petýa geçmedik endikleri bar , Petýanyň hem şahsy endikleri bolup biler. Bu möhüm Santa Barbara indiki bölümlerde Java uçaryna nädip geçirmelidigini öwrenersiňiz. Bu interfeýslere düşünmek üçin ýeke-täk mysal däl. Aşakdaky makalalary okamadyk bolsaňyz, hökman okaň: Java-daky interfeýsler (açylmasa, profiliňizden çykyp bilersiňiz ýa-da gizlin ýagdaýda okap bilersiňiz) Näme üçin interfeýsler gerek? Java - bu ýerdäki makaladaky ähli mysallary ýerine ýetiriň we interfeýslerde we synplarda usullary üýtgediň: usullaryň atlary, gollar (usulyň giriş hökmünde kabul edýän zady), usullaryň çykyş görnüşleri. Özüňize düşüniň: - synp we abstrakt synp bilen interfeýs ýerine ýetirilende tapawut; - esasy usullar.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION