Empat pilar adalah Encapsulation, Abstraction, Inheritance, dan Polymorphism. Bersama-sama, mereka menggambarkan bagaimana OOP mengorganisir dan menggunakan kembali kode.
| Pilar | Ide inti |
|---|
| Encapsulation | Bundel data + perilaku; sembunyikan status internal di balik antarmuka terkontrol |
| Abstraction | Tunjukkan apa yang dilakukan objek, sembunyikan bagaimana melakukannya |
| Inheritance | Subkelas menggunakan kembali dan memperluas kelas induk |
| Polymorphism | Satu antarmuka, banyak implementasi yang dipilih saat runtime |
abstract class Shape { // ABSTRACTION: "what", not "how"
abstract double area(); // each shape decides its own formula
}
class Circle extends Shape { // INHERITANCE: Circle is a Shape
private double r; // ENCAPSULATION: r is private
Circle(double r) { this.r = r; }
double area() { return Math.PI * r * r; } // POLYMORPHISM: own area()
}
class Square extends Shape {
private double s;
Square(double s) { this.s = s; }
double area() { return s * s; }
}
Shape shape = new Circle(2); // POLYMORPHISM in action:
System.out.println(shape.area()); // calls Circle.area() at runtime
Ini adalah alat, bukan tujuan. Memaksa inheritance atau abstraction di mana tidak diperlukan menciptakan kompleksitas. Gunakan pilar yang cocok dengan masalahnya.
Empat kata ini adalah kosakata bersama desain OOP — wawancara dan tinjauan kode mengasumsikan Anda mengetahuinya.
Setiap pilar memetakan ke manfaat nyata: encapsulation melindungi invariant, abstraction mengurangi apa yang harus Anda pahami, inheritance dan polymorphism memungkinkan penggunaan kembali dan perluasan.