3 · Object-Oriented Core · lesson 17 of 41
Abstract Classes
Partial blueprints that can't be instantiated.
Java
abstract class Shape {
abstract double area(); // subclass must implement
void describe() {
System.out.println("area = " + area());
}
}
class Circle extends Shape {
double r;
Circle(double r) { this.r = r; }
double area() { return Math.PI * r * r; }
}Key takeaways
- ✓Use abstract when subclasses share code AND state.
- ✓You cannot new an abstract class directly.