Instead of directly changing the values, we instead give it an interface to mutate / accessor methods (get and set).
public class Point { private int intX; // accesses intX without touching the private variable public int getX() { return intX; } // gives an interface to update intX public int setX(int x) { intX = x; }}
Polymorphism
Overriding functionality to let child objects have different functionality from parent classes
Having several implementations of a method (with different signatures)