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