Удамшил ба найрлагын ялгаа

Удамшил ба найрлагын ялгаа
Удамшил ба найрлагын ялгаа

Видео: Удамшил ба найрлагын ялгаа

Видео: Удамшил ба найрлагын ялгаа
Видео: Удамшил, хувьсал ба шалгарал (Генетик) 2024, Арваннэгдүгээр
Anonim

Өв залгамжлал ба Зохиол

Өв залгамжлал ба Зохиол гэдэг нь OOP (Объект хандлагат програмчлал) -д байдаг хоёр чухал ойлголт юм. Энгийнээр хэлбэл, Бүрэлдэхүүн ба Өв залгамжлал нь ангид нэмэлт шинж чанар эсвэл зан төлөвийг хангахтай холбоотой байдаг. Өв залгамжлал гэдэг нь тухайн анги нь эцэг ангиасаа шинж чанар, зан төлөвийг нь өргөтгөх замаар өвлөн авах чадварыг хэлнэ. Нөгөөтэйгүүр, Зохиол гэдэг нь анги өөр ангиллын объектуудыг гишүүн өгөгдөл болгон агуулж байх чадварыг хэлнэ.

Удамшил гэж юу вэ?

Дээр дурьдсанчлан удамшил гэдэг нь тухайн анги нь эцэг ангиасаа шинж чанар, зан төлөвийг нь өргөтгөх замаар өвлөн авах чадварыг хэлнэ. Өв залгамжлал нь үндсэндээ шинээр тодорхойлсон ангиар одоо байгаа ангийн шинж чанар, зан төлөвийг өргөтгөх замаар кодыг дахин ашиглах боломжийг олгодог. Хэрэв А анги В өргөтгөлтэй бол В ангиллыг эцэг анги (эсвэл супер анги), А ангиллыг хүүхэд анги (эсвэл үүссэн анги/дэд анги) гэж нэрлэдэг. Энэ жишээ хувилбарт А ангилал нь супер ангийн (B) бүх нийтийн болон хамгаалагдсан шинж чанарууд болон аргуудыг өвлөн авах болно. Дэд анги нь эх ангиас удамшсан зан төлөвийг сонголтоор хүчингүй болгож (аргад шинэ эсвэл өргөтгөсөн функцээр хангах) боломжтой.

Өв залгамжлал нь OOP дахь “бол-а” харьцааг илэрхийлдэг. Энэ нь үндсэндээ А нь В мөн гэсэн үг юм. Өөрөөр хэлбэл, В нь тодорхой бодит ертөнцийн ерөнхий тодорхойлолт бүхий анги байж болох ч А нь тодорхой мэргэшлийг зааж өгдөг. Бодит ертөнцийн програмчлалын асуудалд Person ангиллыг өргөтгөж, Ажилтны анги үүсгэх боломжтой. Үүнийг мэргэшил гэж нэрлэдэг. Гэхдээ та эхлээд Ажилтны анги үүсгэж, дараа нь үүнийг Person ангилалд нэгтгэж болно (i.д. ерөнхий дүгнэлт). Энэ жишээнд Ажилтан нь тухайн хүний бүх шинж чанар, зан төлөвийг (жишээ нь: Ажилтан нь мөн Хувь хүн) байх бөгөөд зарим нэмэлт функцуудыг агуулж болно (тиймээс Хүн нь Ажилтан биш юм).

Бүтэц гэж юу вэ?

Бүтэц гэдэг нь анги өөр ангиллын объектуудыг гишүүн өгөгдөл болгон агуулж байх чадварыг хэлнэ. Жишээлбэл, А анги нь В ангиллын объектыг гишүүнээр агуулж болно. Энд В-д тодорхойлсон бүх нийтийн аргууд (эсвэл функцууд) нь А ангилалд хэрэгжих боломжтой. А анги нь контейнер болж, В анги нь агуулагдсан анги болно. Найрлагыг мөн контейнер гэж нэрлэдэг. Энэ жишээнд А анги нь В ангиас бүрддэг гэж хэлж болно. OOP-д Зохиол нь “байгаа-a” харьцааг илэрхийлдэг. Контейнер нь агуулагдсан ангийн бүх нийтийн аргуудыг гүйцэтгэх эрхтэй ч нэмэлт функцийг өөрчлөх эсвэл өгөх боломжгүй гэдгийг анхаарах нь чухал юм. Бодит ертөнцийн програмчлалын асуудлын тухай ярихад TextBox ангийн объект Form ангид агуулагдаж болох тул Маягт нь TextBox (эсвэл маягт нь TextBox-аас бүрдэнэ) агуулж байна гэж хэлж болно.

Удамшил ба Зохиолын ялгаа нь юу вэ?

Хэдийгээр Өв залгамжлал ба Бүрэлдэхүүн нь хоёр OOP ойлголт боловч тэдгээр нь программист хүрэх боломжийг олгодог зүйлээрээ огт өөр юм. Өв залгамжлал гэдэг нь тухайн анги нь эцэг ангиасаа өргөтгөх замаар шинж чанар, зан төлөвийг өвлөн авах чадварыг хэлдэг бол Composition гэдэг нь анги өөр ангиллын объектуудыг гишүүн өгөгдөл болгон агуулж байх чадварыг хэлнэ. Хэрэв анги өргөтгөсөн бол энэ нь бүх нийтийн болон хамгаалагдсан шинж чанаруудыг өвлөн авах ба тэдгээр зан үйлийг дэд ангид дарж болно. Гэхдээ хэрэв анги өөр ангид агуулагдаж байвал контейнер нь агуулагдаж байгаа зүйлдээ зан төлөвийг өөрчлөх, нэмэх чадваргүй болно. Өв залгамжлал нь OOP-д "бол-а"-ын харилцааг илэрхийлдэг бол Зохиол нь "байгаа-a"-ын хамаарлыг илэрхийлнэ.

Зөвлөмж болгож буй: