De fyra pelarna är Encapsulation, Abstraction, Inheritance och Polymorphism. Tillsammans beskriver de hur OOP organiserar och återanvänder kod.
De fyra pelarna
| Pelare | Kärnidé |
|---|---|
| Encapsulation | Paketrera data + beteende; göm interna tillståndet bakom ett kontrollerat gränssnitt |
| Abstraction | Exponera vad ett objekt gör, göm hur det gör det |
| Inheritance | En subklass återanvänder och utökar en överordnad klass |
| Polymorphism | Ett gränssnitt, många implementeringar valda vid körtid |
En snabb illustration
java
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
Fallgrop
Dessa är verktyg, inte mål. Att tvinga arv eller abstraktion där det inte behövs skapar komplexitet. Gripa tag i pelaren som passar problemet.
Varför det spelar roll
Dessa fyra ord är det delade ordförrådet för OOP-design — intervjuer och kodgranskningar förutsätter att du känner till dem.
Varje pelare mappar till en konkret fördel: encapsulation skyddar invarianter, abstraktion minskar det du måste förstå, arv och polymorfism möjliggör återanvändning och utökbarhet.
