50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

این ارور در سی شارپ هنگام اینهتریت کردن به چه معناست؟؟

سلام دوستان آی تی پرویی. این ارور یعنی چی؟؟

ارور سی شارپ

و یک سوال نیز درباره وراثت در سی شارپ داشتم:

1. وقتی یک کلاس از یک کلاس والد مشتق میشه، کدوم اعضای کلاس والدش رو به ارث می بره؟ قفط فیلد و پراپرتی و متد؟؟ یا مثلا سازنده ها هم به ارث می رن؟؟

پرسیده شده در 1396/05/19 توسط

3 پاسخ

1
  1. وقتی یک کلاس از کلاسی مشتق میشه فیلد و متد رو که private نباشند رو به ارث می بره.
  2. سازنده هر کلاس مربوط به خود کلاس هست.
  3. این که سازنده وجود نداشته باشه غیر ممکنه. همه ی کلاس ها که براشون سازنده تعریف نشه یک سازنده پیش فرض دارن که هیچ پارامتر ورودی نداره. اگر می خواهید کلاس فرزندی داشته باشید که کلاس پدر سازنده با پارامتر داشته باشه باید یک سازنده بدون پارامتر در کلاس فرزند تعریف کنید که خودش سازنده کلاس پدر رو مقدار دهی کنه. چون که در کلاس پدر از پارامترهای سازنده استفاده می شه و برای این که کلاس به درستی کار بکنه باید پارامتر های سازنده اش مقدار دهی شده باشه.
  4. سازنده ای که ما توی کلاس فرزند ساختیم دارای 3 تا پارامتر هست که با دو تا از پارامترها سازنده کلاس پدر رو مقدار دهی می کنه و با یکی از پارامتر های سازنده فیلد خودش رو مقدار دهی می کنه.
پاسخ در 1396/05/19 توسط
0

آهان ممنون، فقط چند تا سوال برام پیش اومد:

1. اول اینکه من جواب این سوالم رو متوجه نشدم: "وقتی یک کلاس از یک کلاس والد مشتق میشه، کدوم اعضای کلاس والدش رو به ارث می بره؟ قفط فیلد و پراپرتی و متد؟؟ یا مثلا سازنده ها هم به ارث می رن؟؟ "

2. چرا باید اینکارو کرد؟ مثلا من میخوام یه کلاس فرزند داشته باشم که سازنده ای نداره، اما کلاس والدش داره، باید چیکار کنم در اون صورت؟ یعنی درواقع سوالم اینه که دلیل لزوم اینکار چیه؟

3. الان اون سازنده ای که ما توی فرزند ساختیم چه کار انجام میده؟؟؟

پاسخ در 1396/05/19 توسط
1

سلام به شما دوست عزیز

مشکل کد بالا دقیقا همین سوال شماست. شما باید یک سازنده در کلاس فرزند بسازید که سازنده پدر رو نیز فراخوانی کنه به عبارت زیر باید کد را اینجوری بنویسید

public classs Example3:Example2{
public Example3(int a,int b,int c):base(a,b){
this.pr=c;
}
}

با استفاده از کلمه کلیدی base سازنده کلاس پدر فراخوانی می شود.

پاسخ در 1396/05/19 توسط

پاسخ شما