Yeah, like @Azedaxen says, you can have "damageAllTouching()" take in a damage parameter. This would work because any time you'd be using inheritance, you'll also have access to the child (such as the fireball class object) meaning you have access to damage.
fireball.damageAllTouching(fireball.damage)
But you can actually get it to work your original way (though it seems like sort of a hack, I would recommend not doing this, but it's cool to know it can work).
Father class:
extends Sprite
var life_bar = 100
func take_damage():
life_bar -= get("damage")
print("Life is ", life_bar)
Son class:
extends "res://Father.gd"
export var damage = 12
Make sure to change damage in the editor so you can see it works. But, like i said, it's a hack and not advisable. Mainly because you will not get type checking. If you happen to call the function on something that is not a Son (in my case) bad things will happen.