بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

کپی کردن کلاس

مدیریت گفتگو
Morteza 10 سال پیش
آخرین تغییر: 9 سال پیش

سلام دوستان
پروژه من شامل 2تا کلاس هست به اسم های Type1 و Type2 که هرکدوم متد ها و متغیر های مختص به خودشون رو دارند
حالا میخوام یه همچین ساختاری رو پیاده سازی کنم :

private void initialize(String type) {
if (type == "Type1") {
x = new Type1;
} else if (type == "Type2") {
x = new Type2;
}
}

x باید از چه نوعی باشه که بتونه Type1 یا Type2 رو بپذیره ؟

نظرات

Morteza 10 سال پیش
نه جواب نمیده
FSR 10 سال پیش
برای تشخیص مساوی بودن متن از == استفاده نمی کنن باید از equal استفاده کنی.از object فکر کنم بشه شاید مشکل از == بوده باشه یکبار دیگه هم امتحان کن.
k112 10 سال پیش
همه کلاس ها در جاوا از object ارث بری میکنن پس شما میتونی راحت ایکس رو از نوع ابجکت قرار بدی .... و اینکه یک رشته رو نمیشه با عمگر == مقایسه کرد به این هم توجه کنید
Morteza 10 سال پیش
این که یه sample هست که منظورم رو بگم ،همچنین روش object یا حتی superclass یا اینترفیس نیاز بهcast کردن داره،ولی من نمیخوام نیاز به cast کردن باشه
k112 10 سال پیش
تا جایی که من بلدم و جاوا میگه این حالت به صورت اتوماتیک انجام میشه که بهش UpCasting گفته میشه و نیاز به ذکر صریح کست نیست!!! ... بیشتر توضیح بدید تا بحث کنیم ...

پاسخ‌ها 1

Morteza 10 سال پیش

بدون cast کردن نمی توان به متد ها و فیلد ها دسترسی پیدا کرد :

نظرات

کاشی زاده 9 سال پیش
کلاس های Type 1 و Type 2 را از یک پدر ارث بری کنید . یا کلاسی با ورودی Generic بسازید .

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .