সাধারণভাবে, ওভাররাইডিংয়ে, সুপারক্লাস এবং সাবক্লাসের পদ্ধতির একই নাম এবং প্যারামিটার থাকে। কিন্তু, যখন রিটার্নিং টাইপের কথা আসে, তখন সাবক্লাসের মেথড সুপারক্লাসে মেথডের রিটার্ন টাইপের সাবটাইপ দিতে পারে।
উদাহরণ
আপনি যদি নিম্নলিখিত উদাহরণটি লক্ষ্য করেন সুপার ক্লাসে demoMethod() নামে একটি পদ্ধতি রয়েছে এবং এটি টাইপ তালিকার একটি মান প্রদান করে। যদি আমরা এই পদ্ধতিটিকে ওভাররাইড করি তবে সাবক্লাসের পদ্ধতিটি লিস্ট টাইপের একটি মান ফিরিয়ে দিতে পারে (যা সুপারক্লাসে আছে) অথবা, এটি তালিকার সাবটাইপও ফেরত দিতে পারে (সুপার ক্লাসে পদ্ধতির রিটার্ন টাইপ) যেমন অ্যারেলিস্ট, স্ট্যাক, ভেক্টর ইত্যাদি।
এই পরিস্থিতিতে সাব ক্লাস পদ্ধতি একটি অ্যারেলিস্ট প্রদান করে, সুপার ক্লাসের রিটার্ন টাইপের সাবটাইপ অর্থাৎ তালিকা। এই সাব টাইপ (অ্যারেলিস্ট) নামে পরিচিত কোভেরিয়েন্ট প্রকার .
উদাহরণ
<প্রি>ক্লাস টেস্ট{ int ডেটা =100; পরীক্ষা ডেমো পদ্ধতি(){ এটি ফেরত দিন; }}পাবলিক ক্লাস স্যাম্পল এক্সটেনড টেস্ট{int data =1000; নমুনা ডেমো পদ্ধতি(){ এটি ফেরত দিন; } পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]){ নমুনা স্যাম =নতুন নমুনা(); System.out.println(sam.demoMethod(.data); }}আউটপুট
1000