public, private, and protected are access control modifiers that define visibility levels in object-oriented programming. abstract is a keyword for classes/methods that cannot be instantiated directly, making it fundamentally different from access modifiers.