Like C#'s property, I want to make customized variables getter/setter the only valid getter/setter and restrict others from using the default getter/setter. I am thinking of either overriding them or hiding them, not only making them private but also hiding them and restricting their use in the owner of the variable.
Is there a way to do that in the blueprint without touching cpp?
You can mark a variable as private in blueprints (select the variable and in details there is a private checkbox).
Then if needed you can expose the variable through getter & setter functions if needed.