Яагаад C# хэл дээр олон өв залгамжлал боломжгүй байдаг вэ?
Яагаад C# хэл дээр олон өв залгамжлал боломжгүй байдаг вэ?

Видео: Яагаад C# хэл дээр олон өв залгамжлал боломжгүй байдаг вэ?

Видео: Яагаад C# хэл дээр олон өв залгамжлал боломжгүй байдаг вэ?
Видео: 35-р хэсэг - C# заавар - Interfaces.avi ашиглан олон ангиллын удамшил 2024, May
Anonim

C# үүнийг хийдэг үгүй дэмжлэг үзүүлэх олон өв залгамжлал , учир нь тэд ингэж нэмсэн олон өв залгамжлал C#-д хэт их төвөгтэй байдлыг нэмсэн боловч хэт бага ашиг тустай. C# хэл дээр ангиуд нь зөвхөн зөвшөөрсөн руу өвлөн авах ганц бие гэж нэрлэгддэг ганц бие эцэг эхийн ангиас өв залгамжлал.

Тэгвэл яагаад олон өв залгамжлалыг зөвшөөрдөггүй юм бэ?

Java дэмждэг олон өв залгамжлал зөвхөн интерфейсээр дамжуулан. Анги нь хэдэн ч интерфэйсийг хэрэгжүүлэх боломжтой боловч зөвхөн нэг ангиллыг өргөтгөх боломжтой. Олон удамшлыг дэмждэггүй Учир нь энэ нь үхлийн аюултай алмазын асуудалд хүргэдэг. Интерфейс нь танай ангийн хэрэгжүүлэх ёстой зүйлсийн гэрээ юм.

Бид C# хэл дээр олон интерфэйсийг өвлөн авч чадах уу? Интерфейсүүд ямар анги болох тухай гэрээ эсвэл "гэрээ"-тэй адил юм хийж чадна . Ангиуд чадна байна олон интерфейс , гэхдээ ангиуд боломжгүй олон удамшдаг ангиуд. Ангиуд өв залгамжлах -аас илүү нэг анги гэж нэрлэдэг олон - өв залгамжлал . C# үүнийг хийдэг зөвшөөрөгдөөгүй олон - өв залгамжлал.

Эндээс C# олон удамшлын Diamond асуудал гэж юу вэ?

" алмазын асуудал " гэдэг нь В ба С хоёр анги байхад үүсдэг хоёрдмол байдал юм өвлөн авах А, D ангиас өвлөн авдаг В ба С хоёрын аль алинаас нь. Хэрэв А-д В ба С дарж тэмдэглэсэн арга байгаа бөгөөд D үүнийг дардаггүй бол D аргын аль ангиллыг ашигладаг. өвлөн авах : В-ийнх үү, С-ийнх үү?

Жишээ нь C# хэл дээр олон удамшил гэж юу вэ?

C# зөвшөөрөхгүй олон өв залгамжлал ангиудтай боловч интерфэйс ашиглан хэрэгжүүлж болно. Үүний цаад шалтгаан нь: Олон өв залгамжлал бага ашиг тустай хэт их төвөгтэй байдлыг нэмнэ. Үндсэн ангийн гишүүдтэй зөрчилдөх магадлал маш их байна. Өв залгамжлал Интерфейстэй ижил үүрэг гүйцэтгэдэг олон өв залгамжлал.

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