JavaRush /Блоги Java /Random-TG /Чаро интерфейсҳо лозиманд?
Павел
Сатҳи

Чаро интерфейсҳо лозиманд?

Дар гурӯҳ нашр шудааст
Чаро интерфейсҳо лозиманд? Чаро мероси интерфейс зарур аст? Чаро полиморфизм лозим аст? Барои онҳое, ки хонданд ва фаҳмиданд, ки чӣ тавр сохтани интерфейсҳо, вале намефаҳманд, ки чаро.

Радди масъулият: Дар ин мақола ва мақолаҳои минбаъда номи синфҳо ва усулҳо ба забони русӣ дода мешавад.

Вақте ки сухан дар бораи принсипҳои барномасозии ба an object нигаронидашуда (OOP) меравад: полиморфизм, мерос ва инкапсуляция, истифодаи аналогияҳои воқеии ҷаҳон муфид аст. Бартарии бузурги OOP дар он аст, ки мо метавонем як қисми коиноти воқеиро дар барнома тақлид кунем. Биёед оилаи Ivanовҳоро намуна кунем: Падар , модар ва писар Петя . Аз падар ба Петя одати дар ваќти чой нўшиданро ба мерос гирифтааст, аз модар бошад, одати дар ваќти китобхонї лаб пахш карданро мерос гирифтааст. Агар мо кӯшиш кунем, ки ин вазъиятро дар як барнома татбиқ кунем, мо бо се синф хотима меёбем:
class Папа
class Мама
class Петя
Падар ва модар одатҳое доранд , ки бояд ба Пит интиқол дода шаванд . Одатҳо як навъ амалҳоянд - аз ин рӯ беҳтар аст, ки онҳоро дар ҷаҳони нармафзор ҳамчун усул татбиқ кунед: Падар аввал :
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
    }
}
Акнун модар :
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
   }
}
Агар мо дар бораи мерос сухан ронем, пас мантиқан навиштани code чунин аст:
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Ин аст, ки Петяро аз падар ва модар дар як вақт мерос гиранд . Агар шумо онро ин тавр нависед, компилятор шикоят мекунад, зеро дар Java шумо мероси якчанд синфро амалӣ карда наметавонед. Воқеан, ин дар C++ имконпазир аст, аммо на дар Java, зеро мушкилоти калон метавонанд бо мероси сершумор ба миён оянд: онҳо дар Интернет муфассал менависанд . Чаро интерфейсҳо лозиманд?  - 1Барои гузаштан аз ин "имконнопазир" Java дорои интерфейсҳо мебошад. Ва барои одатҳо мо интерфейси шахсии худро таҳия хоҳем кард. Ҳатто ду: Онҳо чунин хоҳанд буд:
public interface ПривычкиПапы {
    public void прихлюпывать();
}
public interface ПривычкиМамы {
    public void поджимать();
}
Дар интерфейс, мо танҳо одатҳоро тавсиф кардем, аммо тавсиф накардаем, ки онҳо чӣ кор мекунанд, зеро мо татбиқи мушаххасро дар синфҳо менависем. Аввалан, биёед ба Падару Модар одатҳои қонунии онҳоро диҳем.
class Папа implements ПривычкиПапы {

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

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

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Ва ҳоло, интиқол додани одатҳо дар як вақт аз падар ва модар ба Пит комилан қонунист
class Петя implements ПривычкиПапы, ПривычкиМамы {

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

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Яъне татбиқи сершумор (бештар татбиқ номида мешавад) дар Java комилан имконпазир аст. Чаро интерфейсҳо лозиманд?  - 2Ҳоло маънои интерфейсҳо бояд равшан бошад - дар Java, шумо метавонед мероси сершуморро бо истифода аз интерфейсҳо амалӣ кунед. Агар мо вазъиятро минбаъд инкишоф диҳем, масалан: дар ниҳоят, падар ва модар шояд одатҳое дошта бошанд, ки онҳо ба Петя нагузаштаанд ва Петя низ метавонад одатҳои шахсии худро дошта бошад. Шумо дар қисмҳои зерин чӣ гуна интиқол додани ин Санта Барбараи муҳимро ба ҳавопаймои Java меомӯзед. Ин ягона мисол барои фаҳмидани интерфейсҳо нест.Агар шумо мақолаҳои зеринро нахонда бошед, ҳатман хонед: Интерфейсҳо дар Java (агар кушода набошанд, шумо метавонед профor худро тарк кунед ё дар реҷаи инкогнито хонед) Чаро интерфейсҳо дар Java - ҳамаи мисолҳои мақоларо дар ин ҷо татбиқ кунед ва усулҳоро ҳам дар интерфейсҳо ва ҳам дар синфҳо тағир диҳед: номҳои усулҳо, имзоҳо (он чизе, ки усул ҳамчун вуруд мегирад), намудҳои баромади усулҳо. Худи худ фаҳмед: - фарқият ҳангоми татбиқи интерфейс бо синф ва синфи абстрактӣ; - усулҳои пешфарз.
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION