আমরা জানি যদি Supper Class এর মেথড Subclass এ Override করি তবে Subclass এ method signature ও return type একই হওয়া লাগে । না হলে সেটা Override হবে না ।
কিন্তু return type যদি Covariant হয় তবে Subclass এ আমরা return type আলাদা করতে পারবে । তবে সেটা কিছু শর্ত মেনে চলতে হবে । শর্ত হল ঐ subclass এর মেথডের return type অবশ্যই Superclass type হতে হবে ।
অর্থাৎ Supperclass মেথড return type যদি r1 হয় এবং Subclass এ এসে সেই return type যদি r2 হয় [ Signature same হতে হবে ] তবে r2 কে অবশ্যই Supper Type হতে হবে । যদি Supper type না হয় তবে সেটা Invariant হবে এবং কম্পাইল এরর খেতে হবে ।
কোড :
|
এখন question হতে পারে এই কাজটা করা সুবিধা কি ?
সুবিধা হল আমারা আমাদের মেথড থেকে more specific ভাবে ভালু রিটার্ন করতে পারছি । এবং কোড পড়ার ক্ষেত্রেও এটা সুবিধাজনক ।
পুনশ্চ : Java 5.0 এর আগে জাভা তে Covariant return type ছিল না । Java 5.0 তেই সর্ব প্রথম Covariant return type সুবিধা অ্যাড করা হয়েছে
এই পোস্টটি মেহেদি হাসান মেনন শেয়ার করছেন :D
No comments:
Post a Comment