Godot is object-oriented just like those other languages you named. Nodes provide functionality, and scripts extend that functionality by adding properties (data) and methods (behavior). Scenes (collections of nodes) can inherit from other scenes, and script objects can inherit from other scripts.
So in your example, you would create an Entity scene containing the common nodes and common code that all entities need, then inherit from it to make the player (attaching a camera, for instance) and the npcs. You do this by choosing "New Inherited Scene".
As for scripts, if you have an "entity.gd" script, which begins with extends KinematicBody2D
, then in the player you'd start with extends "res://entity/entity.gd"
for example (this can be done in the editor when you create the script, or manually).
You can see an example of this in practice here: http://kidscancode.org/blog/2018/01/godot3_inheritance/
On top of all this, you can also define your own custom classes if you wish. See here for details: https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#classes
I hope this helps. Your question was very general, so please open another if you have a more specific question about implementation details.