Os quatro pilares são Encapsulation, Abstraction, Inheritance e Polymorphism. Juntos, eles descrevem como a OOP organiza e reutiliza código.
Os quatro pilares são Encapsulation, Abstraction, Inheritance e Polymorphism. Juntos, eles descrevem como a OOP organiza e reutiliza código.
| Pilar | Ideia central |
|---|
| Encapsulation | Agrupar dados + comportamento; ocultar o estado interno atrás de uma interface controlada |
| Abstraction | Expor o que um objeto faz, ocultar como ele faz |
| Inheritance | Uma subclasse reutiliza e estende uma classe pai |
| Polymorphism | Uma interface, muitas implementações escolhidas em tempo de execução |
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
Esses são ferramentas, não objetivos. Forçar herança ou abstração onde não é necessário cria complexidade. Escolha o pilar que se adequa ao problema.
Essas quatro palavras são o vocabulário compartilhado do design de OOP — entrevistas e revisões de código assumem que você as conhece.
Cada pilar mapeia para um benefício concreto: encapsulation protege invariantes, abstraction reduz o que você precisa entender, inheritance e polymorphism permitem reutilização e extensibilidade.