Example
An abstract method, belonging to an abstract class, lacks a body, and its implementation is delegated to the subclass:
// Code from filename: Main.java
// abstract class abstract class Main {
public String fname = "John";
public int age = 24;
public abstract void study(); // abstract method
}
// Subclass (inherit from Main)
class Student extends Main {
public int graduationYear = 2018;
public void study() { // the body of the abstract method is provided here
System.out .println("Studying all day long");
}
}
// End code from filename: Main.java
// Code from filename: Second.java
class Second {
public static void main(String[] args ) {
// create an object of the Student class (which inherits attributes and methods from Main)
Student myObj = new Student();
System.out .println("Name: " + myObj .fname );
System.out .println("Age: " + myObj .age );
System.out .println("Graduation Year: " + myObj .graduationYear );
myObj .study(); // call abstract method
}
}
|
Definition and Usage
The “abstract” keyword, serving as a non-access modifier, is utilized for both classes and methods.
Class: An abstract class is a constrained type that cannot be instantiated directly; instead, it must be inherited by another class to be utilized.
Method: An abstract method is exclusive to an abstract class, devoid of implementation, with its functionality inherited and provided by a subclass.