Java тіліндегі мұрагерлік пен интерфейс арасындағы айырмашылық

Мазмұны:

Java тіліндегі мұрагерлік пен интерфейс арасындағы айырмашылық
Java тіліндегі мұрагерлік пен интерфейс арасындағы айырмашылық

Бейне: Java тіліндегі мұрагерлік пен интерфейс арасындағы айырмашылық

Бейне: Java тіліндегі мұрагерлік пен интерфейс арасындағы айырмашылық
Бейне: 27.01.2021 - 6-8 сыныптар 2024, Қараша
Anonim

Негізгі айырмашылық – Java тіліндегі мұрагерлік пен интерфейс

Java - Sun Microsystems әзірлеген бағдарламалау тілі. Java әртүрлі қосымшаларды әзірлеу үшін пайдаланылуы мүмкін. Бұл объектілі-бағытталған, құрылымдық және т.б. қолдайтын көп парадигмалық тіл. Java тілінің басты артықшылығы оның объектіге бағытталған бағдарламалауды (OOP) қолдайтынында. Бағдарламашы сыныптар мен объектілерді жасай алады. OOP-те төрт тірек бар. Олар тұқым қуалаушылық, полиморфизм, абстракция және инкапсуляция. Мұрагерлік және интерфейстер OOP-мен байланысты. Мұрагерлік пен интерфейстің негізгі айырмашылығы - мұрагерлік бұрыннан бар сыныптардан жаңа сыныптарды алу, ал интерфейс абстрактілі сыныптар мен бірнеше мұраны жүзеге асыру болып табылады.

Java тіліндегі мұра дегеніміз не?

Мұрагерлік кодты қайта пайдалануға мүмкіндік береді. Мұрагерлік бұрыннан бар сыныптың атрибуттары мен әдістерін қайта пайдалануға көмектеседі. Ескі классты пайдаланып жаңа класс шығару механизмі мұрагерлік деп аталады. Ескі сынып ата-аналық сынып немесе супер класс ретінде белгілі. Туынды класс еншілес сынып немесе ішкі сынып деп аталады.

Java мұрасының синтаксисі келесідей.

сынып қосалқы_атауы суперсынып_атын кеңейтеді {

айнымалы декларация;

әдіс туралы мәлімдеме;

}

Мұрагерлік тұжырымдаманы келесі мысал арқылы түсіндіруге болады. Төмендегідей А деп аталатын сынып бар деп есептейік.

қоғамдық сынып A{

қоғамдық жарамсыз сома(){

System.out.println («Қосынды»);

}

}

Егер біз бұрыннан бар сыныпты өзгертпей жаңа әдіс қосқымыз келсе, оны келесідей орындауға болады.

қоғамдық сынып B{

қоғамдық жарамсыз ішкі(){

System.out.println («Қосымша»);

}

}

Бағдарламашы А класының қосындысын пайдалану үшін мұраны пайдалана алады.

қоғамдық В сыныбы А сыныбын кеңейтеді{

қоғамдық жарамсыз ішкі(){

System.out.println («Қосымша»);

}

}

Негізгі функцияда B объектісін жасауға және мұрагерлікті пайдаланып B класына жататын sub() және А класына жататын sum() функциясын шақыруға болады.

public static void main(String args){

B нысан=жаңа B();

obj.sub();

obj.sum();

}

Мұраның әртүрлі түрлері бар. Олар бір тұқым қуалаушылық, көп мұрагерлік, көп деңгейлі мұрагерлік және иерархиялық мұра. Жалғыз мұрагерлікте бір негізгі класс және бір туынды класс бар. Көп деңгейлі мұрагерлікте үш класс бар, атап айтқанда, негізгі класс, аралық класс және туынды класс. Аралық класс базалық сыныптан, ал туынды класс аралық сыныптан мұрагер болады. Иерархиялық мұрада бір негізгі класс және көптеген туынды класстар бар. Гибридті мұра деп аталатын ерекше түрі бар. Бұл мұраның екі немесе одан да көп түрлерінің тіркесімі.

Java тіліндегі мұрагерлік пен интерфейс арасындағы айырмашылық
Java тіліндегі мұрагерлік пен интерфейс арасындағы айырмашылық

01-сурет: мұра

Көп мұрада көптеген негізгі сыныптар және бір туынды класс бар. А және В класы негізгі сыныптар деп есептейік. C класы - туынды класс. Егер А және В кластарының екеуінде де бірдей әдіс болса және бағдарламашы бұл әдісті туынды сыныптан шақырса, бұл анық емес мәселе тудырады. Екі сыныпты мұралау компиляция уақыты қатесін тудыруы мүмкін. Сондықтан Java тілінде бірнеше мұраға қолдау көрсетілмейді. Бұл мәселені шешу үшін интерфейсті пайдалануға болады.

Java тіліндегі интерфейс дегеніміз не?

Абстракция – іске асыру мәліметтерін жасыру және пайдаланушыға тек функцияларды көрсету процесі. Абстракцияға абстрактілі сыныптар немесе интерфейстер арқылы қол жеткізуге болады. Абстрактілі әдіс – іске асырылуы жоқ әдіс. Кемінде бір дерексіз әдісі бар класс абстрактілі класс болып табылады. Абстрактілі сыныптың мысалы келесідей.

дерексіз сынып A{

дерексіз сома();

}

А және В сияқты екі дерексіз класс бар деп есептейік. А және В дерексіз әдістерін жүзеге асыру үшін жаңа С сыныбы жасалады. Содан кейін C класы А және В екеуін де кеңейтуі керек, бірақ Java-да бірнеше мұраға қолдау көрсетілмейді. Сондықтан интерфейстерді пайдалану керек. Интерфейстерді әдістерді жариялау үшін пайдалануға болады, бірақ әдістерді анықтау мүмкін емес. Интерфейстерді пайдаланып объект құру мүмкін емес. C класы А және В интерфейсіндегі барлық әдістерді енгізуі керек.

интерфейс A{

жарамсыз сома();

}

интерфейсі B{

void sub();

}

C класты қондырғылары A, B{

қоғамдық жарамсыз сома(){

System.out.println («Қорытындылау»);

}

қоғамдық жарамсыз ішкі(){

System.out.println («Азайту»);

}

}

Енді негізгі бағдарламада C тілінің объектісін құруға және екі әдісті де шақыруға болады.

public static void main (жол аргтар) {

C объект=жаңа C();

obj.sum();

obj.sub();

}

Сонымен, интерфейстер бірнеше мұраны жүзеге асыру үшін пайдалана алады.

Интерфейстерді қолданудың тағы бір түрі - ол қауіпсіздікті қамтамасыз етеді. Төмендегі кодты қараңыз.

интерфейс A {

жарамсыз сома ();

}

В класы A құрылғылары {

қоғамдық жарамсыз сома () {

System.out.println («Қорытындылау»);

}

қоғамдық жарамсыздықты көбейту () {

System.out.println («Көбейту»);

}

}

В нысанын құру кезінде қосынды () және көбейту () әдісін де шақыруға болады. Егер бағдарламашы көбейту () функциясын пайдалануды шектегісі келсе, бұл келесідей болуы мүмкін.

public static void main(String args){

A obj=new B();

obj.sum();

}

A obj=жаңа B(); объект жасайды. Ол А типті және жад В ретінде бөлінген. sum() функциясын шақыруға болады, бірақ multiply() функциясын орындай алмайды. Бұл шектеу интерфейстер арқылы орындалады.

Java тіліндегі мұрагерлік пен интерфейстің қандай ұқсастықтары бар?

  • Екі ұғым да объектіге бағытталған бағдарламалауға қатысты
  • Екеуі де IS-A қатынасын білдіреді.

Java тіліндегі мұрагерлік пен интерфейстің айырмашылығы неде?

Мұрагерлік пен Java тіліндегі интерфейс

Мұрагерлік - бұрыннан бар сыныптардан жаңа сыныптар алуға арналған OOP тұжырымдамасы. Интерфейс – абстракция мен көп мұраны жүзеге асыруға арналған OOP механизмі.
Қолдану
Мұрагерлік кодты қайта пайдалануға мүмкіндік береді. Интерфейстер абстракция мен көп мұраны қамтамасыз етеді.

Қорытынды – Java тіліндегі мұраға қарсы интерфейс

Java – объектіге бағытталған бағдарламалауды қолдайтын көп парадигмалық бағдарламалау тілі. Мұрагерлік және интерфейстер объектіге бағытталған бағдарламалаумен байланысты. Мұрагерлік пен интерфейстің айырмашылығы - мұрагерлік бұрыннан бар сыныптар мен интерфейстерден жаңа сыныптар алу үшін дерексіз сыныптар мен бірнеше мұраны жүзеге асыру болып табылады.

Мұрагерлік пен Java интерфейсінің PDF нұсқасын жүктеп алыңыз

Сіз осы мақаланың PDF нұсқасын жүктеп алып, сілтеме жазбасына сәйкес офлайн мақсаттарда пайдалана аласыз. PDF нұсқасын мына жерден жүктеп алыңыз: Java тіліндегі мұра және интерфейс арасындағы айырмашылық

Ұсынылған: