JavaRush /Java Blogu /Random-AZ /Niyə interfeyslər lazımdır?
Павел
Səviyyə

Niyə interfeyslər lazımdır?

Qrupda dərc edilmişdir
Niyə interfeyslər lazımdır? İnterfeys varisliyi niyə lazımdır? Polimorfizm nə üçün lazımdır? İnterfeyslərin necə qurulacağını oxuyan və başa düşən, lakin səbəbini başa düşməyənlər üçün.

İmtina: Bu və sonrakı məqalələrdə siniflərin və metodların adları rus dilində veriləcəkdir.

Obyekt yönümlü proqramlaşdırmanın (OOP) prinsiplərinə gəldikdə: polimorfizm, irsiyyət və inkapsulyasiya, real dünya analogiyalarından istifadə etmək faydalıdır. OOP-un böyük üstünlüyü ondan ibarətdir ki, biz proqramda real kainatın bir hissəsini simulyasiya edə bilərik. İvanovlar ailəsini modelləşdirək: ata , ana və oğlan Petya . Atadan Petya çay içərkən slurping vərdişini, anadan isə oxuyarkən dodaqlarını büzmək vərdişini miras aldı . Bu vəziyyəti bir proqrama daxil etməyə çalışsaq, üç siniflə nəticələnəcəyik:
class Папа
class Мама
class Петя
Ataananın Pitə ötürülməli olan vərdişləri var . Vərdişlər bir növ hərəkətlərdir - buna görə də onları proqram dünyasında üsul kimi tətbiq etmək daha yaxşıdır: Baba Birinci :
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
    }
}
İndi ana :
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
   }
}
Əgər mirasdan danışırıqsa, kodu belə yazmaq məntiqlidir:
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Yəni Petyanı atadan və anadan eyni anda miras almaq . Bunu belə yazsanız, kompilyator şikayət edəcək, çünki Java-da siz çoxlu sinif irsini həyata keçirə bilməzsiniz. Yeri gəlmişkən, bu, C++-da mümkündür, Java-da deyil, çünki çoxlu mirasla böyük problemlər yarana bilər: İnternetdə ətraflı yazırlar . Niyə interfeyslər lazımdır?  - 1Bu "mümkün olmayan" dan çıxmaq üçün Java-nın interfeysləri var. Və vərdişlər üçün öz interfeysimizlə qarşılaşacağıq. Hətta iki: Onlar belə görünəcək:
public interface ПривычкиПапы {
    public void прихлюпывать();
}
public interface ПривычкиМамы {
    public void поджимать();
}
İnterfeysdə biz yalnız vərdişləri təsvir etdik, lakin onların konkret olaraq nə etdiklərini təsvir etmədik, çünki xüsusi tətbiqi dərslərdə yazacağıq. Əvvəlcə ataanaya qanuni vərdişlərini verək .
class Папа implements ПривычкиПапы {

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

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

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
İndi isə ataanadan Pitə vərdişləri eyni anda ötürmək tamamilə qanunidir
class Петя implements ПривычкиПапы, ПривычкиМамы {

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

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Yəni Java-da çoxlu tətbiqetmə (daha tez-tez həyata keçirmə adlanır) olduqca mümkündür. Niyə interfeyslər lazımdır?  - 2İnterfeyslərin mənası indi aydın olmalıdır - Java-da interfeyslərdən istifadə edərək çoxlu varislik həyata keçirə bilərsiniz. Vəziyyəti daha da inkişaf etdirsək, məsələn: nəhayət, ataananın Petyaya ötürmədikləri vərdişləri var və Petyanın da öz şəxsi vərdişləri ola bilər. Bu mühüm Santa Barbaranı Java təyyarəsinə necə köçürəcəyinizi növbəti epizodlarda öyrənəcəksiniz. Bu, interfeysləri başa düşmək üçün yeganə nümunə deyil.Əgər aşağıdakı məqalələri oxumamısınızsa, mütləq oxuyun: Java-da interfeyslər (açıq deyilsə, profilinizdən çıxa və ya inkoqnito rejimində oxuya bilərsiniz) Niyə interfeyslərə ehtiyac var Java - məqalədəki bütün nümunələri burada tətbiq edin və həm interfeyslərdə, həm də siniflərdə metodları dəyişdirin: metodların adları, imzalar (metodun giriş kimi qəbul etdiyi), metodların çıxış növləri. Özünüz dərk edin: - sinif və abstrakt sinif ilə interfeys həyata keçirərkən fərq; - standart üsullar.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION