Негизги айырма – OOPдогу полиморфизм менен тукум куучулук
Объектке багытталган программалоо (OOP) көбүнчө программалык камсыздоону иштеп чыгуу үчүн колдонулат. Көптөгөн программалоо тилдери объектиге багытталган программалоону колдойт. Объектке багытталган программалоо класстарды жана объекттерди колдонуу менен программаны долбоорлоо методологиясы. OOPдеги класс - бул объектти түзүүнүн планы. Класстын касиеттери жана ыкмалары бар. Объект класстын мисалы. OOP тукум куучулук, полиморфизм, абстракция жана инкапсуляция сыяктуу төрт түркүктү камтыйт. Бул макалада OOPдеги Полиморфизм менен Мурастын ортосундагы айырма талкууланат. OOPдеги Полиморфизм менен Тукум куучулуктун ортосундагы негизги айырма, Полиморфизм - бул объекттин өзүн бир нече жол менен алып жүрүү жөндөмү жана Мурас - учурдагы класстын касиеттерин жана ыкмаларын колдонуу менен жаңы классты түзүү.
OOPдеги полиморфизм деген эмне?
Полиморфизм бир нече форманы көрсөтүү. Бир объекттин бир нече жүрүм-туруму болушу мүмкүн. Полиморфизм эки категорияга бөлүнөт. Алар ашыкча жүктөөдө жана жокко чыгарылууда.
Ашыкча жүктөө
Төмөнкү Java тилинде жазылган программаны караңыз.
01-сүрөт: Ашыкча жүктөө
Жогорудагы программага ылайык А түрүндөгү объект түзүлөт. obj.sum(); ал sum() ыкмасына байланыштуу натыйжаны берет. obj.sum(2, 3) чакырганда; ал суммага (int a, int b) байланыштуу натыйжаны берет. Бир эле объекттин кырдаалга жараша ар кандай жүрүм-туруму бар экенин байкоого болот. Бир эле аталыштагы, бирок башка параметрлери бар бир нече ыкмалар болгондо, ал ашыкча жүктөө деп аталат. Ал статикалык байланыш же компиляция убактысы полиморфизми катары да белгилүү.
Өткөрүлүүчү
Полиморфизмдин дагы бир түрү жокко эсе. Java тилинде жазылган төмөнкү программаны караңыз.
02-сүрөт: жокко чыгаруу
Жогорудагы программага ылайык, А классында display() ыкмасы бар. В классы А классынан тарайт. Демек, А классындагы бардык методдор В классы боюнча жеткиликтүү. Бул мурас. Мурас түшүнүгү кийинчерээк сүрөттөлөт.
Б классында да ушундай дисплей ыкмасы бар(). А типтеги объектти түзүүдө жана дисплей ыкмасын чакырганда, чыгаруу В берет. А классынын дисплей ыкмасы В классынын дисплей ыкмасы менен жокко чыгарылат. Демек, жыйынтык B.
Бир эле аталыштагы жана бирдей параметрлери бар, бирок эки башка класстагы методдор болгондо жана алар мурастоо менен байланышканда, ал жокко чыгаруу деп аталат. Ал ошондой эле кеч байланыш, динамикалык байланыш, Runtime полиморфизм деп аталат. Ашыкча жүктөө жана жокко чыгаруу Полиморфизм деп аталат. Бул Объектке багытталган программалоодогу негизги түшүнүк.
OOPде Мурас деген эмне?
Төмөнкү Java тилинде жазылган программаны караңыз.
03-сүрөт: Мурастыктын мисалы
Жогорудагы программага ылайык, А классында sum() методу жана В классында sub() ыкмасы бар.
A классынын sum() ыкмасын кеңейтүү ачкыч сөзү менен В классында колдонсо болот. Жаңы класс түзүү үчүн учурдагы класстагы касиеттерди жана ыкмаларды кайра колдонуу Мурас деп аталат. Ал тургай, В классында sum() ыкмасы жок; ал А классынан тукум кууп өткөн. Мурастоо кодду кайра колдонуу үчүн пайдалуу. Эски класс базалык класс, суперкласс же ата-эне класс деп аталат. Туунду класс субкласс же бала класс деп аталат.
Мурастын түрлөрү
Мурастын ар кандай түрлөрү бар. Алар бир деңгээлдеги мурастоо, көп деңгээлдүү мурастоо, көп мурастоо, иерархиялык мурастоо жана гибриддик мурастоо.
Бирдиктүү мурас
Бирдиктүү мураста бир супер класс жана бир суб класс бар. Эгерде А классы супер класс жана В классы подкласс болсо, А классынын бардык касиеттери жана ыкмаларына В классы жеткиликтүү. Бир гана деңгээл бар; ошондуктан, ал бир деңгээлдеги мурас деп аталат.
Көп деңгээлдүү мурас
Көп деңгээлдүү мураста класстардын үч деңгээли бар. Орто класс супер класстан мураска алат. Субкласс орто класстан мураска алат. Эгерде А, В жана С сыяктуу үч класс бар болсо, А супер класс, ал эми В орто класс. Анда В Адан, ал эми В Вдан мурастайт, бул көп деңгээлдүү мурас.
Бир нече мурас
Бир нече тукум куучулукта көптөгөн супер класстар жана бир суб класс бар. Эгерде A, B, C жана D деп аталган үч супер класс бар болсо, анда D классы A, B жана C класстарынан мурастай алат. C++ программалоо тилинде бир нече тукум куучулук колдоого алынат. Ал Java же C сыяктуу программалоо тилдеринде колдоого алынбайт. Бул тилдерде бир нече мурасты ишке ашыруу үчүн интерфейстер колдонулат.
Иерархиялык мурас
Эгер супер класстар катары А деп аталган класстар жана В, С суб класстар болсо, ал суб класстар А классынын касиеттерин жана ыкмаларын мурастай алат. Мурастын мындай түрү иерархиялык мурас катары белгилүү.
Гибриддик мурас
Гибриддик мурас катары белгилүү болгон дагы бир өзгөчө тукум куучулук түрү бар. Бул көп деңгээлдүү жана көп тукум куучулуктун жыйындысы. Эгер A, B, C жана D класстар болсо, ал эми В Aдан жана D B жана Сдан тең мурастоо болсо, анда ал гибриддик мурас болуп саналат.
OOPдеги полиморфизм менен тукум куучулуктун кандай окшоштуктары бар?
Экөө тең объектиге багытталган программалоонун түшүнүктөрү
OOPдеги полиморфизм менен тукум куучулуктун ортосунда кандай айырма бар?
Полиморфизм жана OOPдогу мурас |
|
Полиморфизм – объекттин өзүн бир нече жол менен алып жүрүү жөндөмү. | Мурас - бул учурдагы класстын касиеттерин жана ыкмаларын колдонуу менен жаңы класс түзүү. |
Колдонуу | |
Полиморфизм объекттерди компиляция убагында жана аткаруу убагында методдордун кайсы формасын чакыруу үчүн колдонулат. | Мурастык кодду кайра колдонуу үчүн колдонулат. |
Ишке ашыруу | |
Полиморфизм методдордо ишке ашырылат. | Мурас класстарда ишке ашырылат. |
Категориялар | |
Полиморфизмди ашыкча жүктөө жана жокко чыгаруу деп бөлүүгө болот. | Мурас бир деңгээлдүү, көп деңгээлдүү, иерархиялык, гибриддик жана көп мурастоо болуп бөлүнөт. |
Кыскача маалымат – OOPдогу полиморфизмге каршы мурас
Полиморфизм жана тукум куучулук объектиге багытталган программалоодогу негизги түшүнүктөр. OOPдогу Полиморфизм менен Тукум куучулуктун ортосундагы айырмачылык, Полиморфизм бир нече формалардын жалпы интерфейси жана Мурас - учурдагы класстын касиеттерин жана ыкмаларын колдонуу менен жаңы классты түзүү. Эки түшүнүк тең программалык камсыздоону иштеп чыгууда кеңири колдонулат.
PDF Полиморфизмине каршы OOP'деги мурасты жүктөп алыңыз
Сиз бул макаланын PDF версиясын жүктөп алып, шилтеме эскертүүсүнө ылайык оффлайн максаттарында колдоно аласыз. Сураныч, PDF версиясын бул жерден жүктөп алыңыз, OOP ичиндеги полиморфизм менен тукум куучулуктун айырмасы