PDA

View Full Version : چگونه می توان جلوی انتقال متدها و ... در هنگام استفاده Inherit گرفت.



منصور بزرگمهر
جمعه 01 شهریور 1387, 17:23 عصر
چگونه می توان جلوی انتقال متدها و ... در هنگام استفاده Inherit گرفت.

با استفاده از عبارتهای Public and Protected می توان متدها و خصیصه ها را در کلاس ارث بری شده انتقال داد. حال اگر چند کلاس بصورت پشت سر هم از یکدیگر ارث بری کنند، در کلاسهای انتهائی نیاز به متدهای کلاسهای ابتدایی دیگر نیست، در حالیکه این متدها همچنان انتقال می یابند. چگونه می توان جلوی انها را گرفت.

در مثال Point و Line و Quadrilateral (چهار گوش) (که بترتیب از هم ارث بری دارند) ما Property X and Y را در کلاس Point برای تعریف محل نقطه می کنیم، حال برای ترسیم خط که از نقاط بهم وصل شده استفاده می کنیم(و ما نیاز به دسترسی به نقطه را داریم)، ولی در کلاس چهار گوش ما نیاز به خط داریم و نیازی به نقطه نداریم، و نیاز نقطه بی معنا می باشد.
چگوته می توان جلوی انتقال نقطه را در کلاس جهار گوش گرفت.

Microsoft.net
جمعه 01 شهریور 1387, 17:34 عصر
متاسفانه دات نت وراثت چند گانه و وراثت گزینشی رو پشتیبانی نمی کنه

اَرژنگ
جمعه 01 شهریور 1387, 18:52 عصر
چگونه می توان جلوی انتقال متدها و ... در هنگام استفاده Inherit گرفت.

با استفاده از عبارتهای Public and Protected می توان متدها و خصیصه ها را در کلاس ارث بری شده انتقال داد. حال اگر چند کلاس بصورت پشت سر هم از یکدیگر ارث بری کنند، در کلاسهای انتهائی نیاز به متدهای کلاسهای ابتدایی دیگر نیست، در حالیکه این متدها همچنان انتقال می یابند. چگونه می توان جلوی انها را گرفت.

در مثال Point و Line و Quadrilateral (چهار گوش) (که بترتیب از هم ارث بری دارند) ما Property X and Y را در کلاس Point برای تعریف محل نقطه می کنیم، حال برای ترسیم خط که از نقاط بهم وصل شده استفاده می کنیم(و ما نیاز به دسترسی به نقطه را داریم)، ولی در کلاس چهار گوش ما نیاز به خط داریم و نیازی به نقطه نداریم، و نیاز نقطه بی معنا می باشد.
چگوته می توان جلوی انتقال نقطه را در کلاس جهار گوش گرفت.

منظورتان از انتقال دادن چی هست، ارث بری؟ این طراحی که از ارث بری استفاده میکند اشتباه است، احتیاجی به استفاده از ارث بری نیست،
Line از Point ارث نمیبرد، از ۲ تا Point استفاده میکند (composition).
Quadrilateral ازLine ارث نمیبرد، از ۴ تا Line استفاده میکند (composition).



به جایه ارث بری با پیاده کردن اینترفیسها این کار انجام میشه، (سوء)استفاده زیاده از ارث بری را با پیاده کردن اینترفیسهایه مختلف کمتر میکنند و با اینترفیسهایه مختلف کار میکنند (به جایه اینکه با یک کلاس و وراثتها کار کنند).

اَرژنگ
جمعه 01 شهریور 1387, 20:41 عصر
متاسفانه دات نت وراثت چند گانه و وراثت گزینشی رو پشتیبانی نمی کنه
وراثت گزینشی چیه؟