হ্যাঁ, জাভাতে main() মেথড final হিসেবে ডিক্লেয়ার করা যায়। কম্পাইলার কোনো এরর থ্রো করে না।
- যদি আমরা যেকোনো মেথডকে final কিওয়ার্ড দিয়ে final ডিক্লেয়ার করি, তবে সেই মেথডটি final method হয়ে যায়।
- final method-এর মূল ব্যবহার জাভাতে হলো সেগুলো ওভাররাইড করা যায় না।
- আমরা final methods সাবক্লাসে ওভাররাইড করতে পারি না।
- যদি আমরা ইনহেরিটেন্স ব্যবহার করি এবং কিছু মেথড সাবক্লাসে ওভাররাইড না হওয়া দরকার, তবে সেগুলো final করে দিতে হয় যাতে সাবক্লাসগুলো সেগুলো ওভাররাইড করতে না পারে।
- আমরা সাবক্লাসে final methods অ্যাক্সেস করতে পারি কিন্তু ওভাররাইড করতে পারি না।
উদাহরণ
class BaseClass {
public final void show(Object o) {
System.out.println("BaseClass method");
}
}
class DerivedClass extends BaseClass {
public void show(Integer i) {
System.out.println("DerivedClass method");
}
}
public class Test {
public static final void main(String[] args) { // main() মেথড final কিওয়ার্ড দিয়ে ডিক্লেয়ার
BaseClass b = new BaseClass();
DerivedClass d = new DerivedClass();
b.show(new Integer(0));
d.show(new Integer(0));
}
}
আউটপুট
BaseClass method DerivedClass method