Understanding OOP Concepts: Abstraction & Interface
In this topic, I’m going to explain the Abstraction & Interface. Let’s get started.
Table of Contents
Abstraction
Abstraction is the process of hiding the implementation details and showing only the functionalities to the user. A class that is declared using abstract
keyword is known as abstract class.
Let’s know some important info about Abstraction:
- The
abstract
keyword is a non-access modifier. - Unable to create an object from the abstract class. To access the abstract class, it must be inherited from another class.
- Abstract methods don’t have body. The body is provided by the child class.
- Abstract class contains abstract and non-abstract methods.
An example:
abstract class Animal {
public abstract void sound(); // abstract method
public void sleep() { // non-abstract method
System.out.println("Zzz");
}
}
So, we’re unable to create object like this:
Animal animalObject = new Animal(); // will dislay an error
We’ve to extend from another class and then we’ll able to create object.
// subclass
class Dog extends Animal {
public void sound() {
System.out.println("Woof");
}
}
// create Dog object from another class
class AnotherClass {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound();
dog.sleep();
}
}
Interface
The interface is a collection of abstract methods. It’s like a class. We can say interface is the 100% abstract class.
To use interface in a class, we’ve to use the implements
keyword instead of extends
keyword.
Have a look at the example:
interface Animal {
String info = "Interface class"; // public, static and final
void sound(); // public and abstract
void sleep(); // public and abstract
}
// subclass
class Dog implements Animal {
public void sound() {
System.out.println("Woof");
}
public void sleep() {
System.out.println("Zzz");
}
}
// create Dog object from another class
class AnotherClass {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound();
dog.sleep();
System.out.println(info);
}
}
Md Obydullah
Software Engineer | Ethical Hacker & Cybersecurity...
Md Obydullah is a software engineer and full stack developer specialist at Laravel, Django, Vue.js, Node.js, Android, Linux Server, and Ethichal Hacking.