Abstraction

In programming, abstraction is the extraction of essence —
common behavior, without concrete implementation.

public abstract class Human : BaseEntity
{
    public string Name { get; init; }

    public abstract void Think();
    public abstract void Speak();
}

In life, it is when we say:
"This is a human. They can think, speak, feel."
How exactly — is not yet relevant.

Abstraction is a model of thinking that hides details
so we can operate with meaning — not mechanisms.
We do not reveal internals. We communicate role.
And behind that role — thousands of possible implementations may stand.

Unlike encapsulation, which hides for protection,
abstraction hides for simplicity of thought.
It is like a map — it need not contain every stone;
it must only give direction.