An abstract method must be overridden in the sub class whereas final method cannot be overridden.
Example: abstarct method overridden in subclass
abstract class AbstractMethodTest{ abstract void show(); } public class Main extends AbstractMethodTest { void show() { System.out.println("Inside overridden show method"); } public static void main(String args[]){ //creating object of Main Class Main obj = new Main(); obj.show(); } } |
Output
Inside overridden show method |
Example: abstarct method overridden in subclass
abstract class AbstractMethodTest{ abstract void show(); } public class Main extends AbstractMethodTest { public static void main(String args[]){ //creating object of Main Class Main obj = new Main(); obj.show(); } } |
Output
Main.java:5: error: Main is not abstract and does not override abstract method show() in AbstractMethodTest public class Main extends AbstractMethodTest { ^ 1 error |
Example: final method without overriding in subclass
class FinalMethodTest{ final void show(){ System.out.println("w3schools.com"); } } public class Main extends FinalMethodTest{ public static void main(String args[]){ //creating object of FinalMethodTest Class FinalMethodTest obj = new FinalMethodTest(); obj.show(); } } |
Output
w3schools.com |
Example: final method overridden in subclass
class FinalMethodTest{ final void show(){ System.out.println("w3schools.com"); } } public class Main extends FinalMethodTest{ void show(){ System.out.println("Overridden method"); } public static void main(String args[]){ //creating object of FinalMethodTest Class FinalMethodTest obj = new FinalMethodTest(); } } |
Output
Main.java:7: error: show() in Main cannot override show() in FinalMethodTest void show(){ ^ overridden method is final 1 error |
Java interview questions on final keyword
- what is final in java?
- What is final variable in java?
- What is final method in java?
- What is final class in java?
- What is blank final variable in java?
- What is static blank final variable in java?
- What is final parameter in java?
- Can we initialize blank final variable in java?
- Can we declare the main method as final?
- What is the use of final keyword in java?
- Can we change the state of an object to which a final reference variable is pointing?
- Difference between abstract method and final method in java?
- Can we change the value of an interface field?
- Can we declare constructor as final in java?