+1 امتیاز
قبل در برنامه نویسی توسط (204 امتیاز)
برچسب گذاری دوباره قبل توسط
برای افزودن functinalty یک کلاس final باید آن را wrap کرد میتواند با یک مثال این عمل را توضیح دهید؟

با تشکر

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

چون در جاوا نمی توان از یک کلاس final ارث برد برای افزودن قابلیت به آن یا بهبود یک قابلیت آن می توان از composition استفاده کرد. کلاس final زیر را در نظر بگیرید:

public final class FinalClass {

    public String testMethod(String message) {
        return "test-"+message;
    }

}

اگر بخواهیم functionality متد testMethod را تغییر دهیم می توانیم یک instance از آن در کلاس جدید تعریف کنیم و متد جدید با همان نام تعریف می کنیم که از متد اصلی استفاده می کند:

public class WrapperClass{

    private FinalClass finalClass = new FinalClass();

    public String enhancedTestMethod(String message) {
        String ret = finalClass.testMethod(message);
        return "enhanced-"+ret;
    }

}

سوالات مشابه

+2 امتیاز
2 پاسخ 2.4هزار بازدید
0 امتیاز
2 پاسخ 853 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 1.8هزار بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 410 بازدید
0 امتیاز
2 پاسخ 926 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
+1 امتیاز
1 پاسخ 420 بازدید
...