+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.2هزار بازدید
0 امتیاز
2 پاسخ 738 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 1.7هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 307 بازدید
0 امتیاز
2 پاسخ 713 بازدید
+1 امتیاز
1 پاسخ 1.3هزار بازدید
+1 امتیاز
1 پاسخ 318 بازدید
...