Abstraction in Java
Abstraction is the concept of hiding complex implementation details and showing only the essential features of an object.
Abstract Classes
- Cannot be instantiated directly
- May contain abstract methods (without body)
abstract class Animal {
abstract void sound(); // Abstract method
void eat() {
System.out.println("Eating...");
}
}
class Dog extends Animal {
void sound() {
System.out.println("Bark");
}
}
Animal a = new Dog();
a.sound(); // Output: Bark
a.eat(); // Output: Eating...
Interfaces
- Defines a contract that implementing classes must follow
interface Drawable {
void draw();
}
class Circle implements Drawable {
public void draw() {
System.out.println("Drawing Circle");
}
}
Drawable d = new Circle();
d.draw(); // Output: Drawing Circle