Có, chúng ta có thể khai báo main() method là final trong Java. Compiler không ném bất kỳ lỗi nào.
- Nếu khai báo bất kỳ method nào là final bằng cách đặt từ khóa final thì method đó trở thành final method.
- Chính mục đích của final method trong Java là chúng không bị overridden.
- Chúng ta không thể override final methods trong subclass.
- Nếu dùng inheritance và cần một số method không bị override trong subclass thì làm nó final để subclass không override được.
- Chúng ta có thể truy cập final methods trong subclass nhưng không thể override final methods.
Ví dụ
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) { // declaring main () method with final keyword.
BaseClass b = new BaseClass();
DerivedClass d = new DerivedClass();
b.show(new Integer(0));
d.show(new Integer(0));
}
}Kết quả
BaseClass method DerivedClass method