You can make a base class and then have a derived class extend from it like so:
extends "res://path/to/base.gd"
Then in your derived class you can call the base class's functions by preceding the call with . like so (equivalent to Java's super
or C#'s base
):
._my_func()
So if both the derived and base class have a myfunc(), you can put code in both. If you want the derived class to call the base function you can, or you can override it by just not calling the base function.
You can also just put pass
in the base function if you want it to be "pure" virtual (though it's not really pure virtual as GDScript does not enforce that it be implemented anywhere). In fact, GDScript doesn't really enforce anything, so you can mess around with different parameters and stuff too, it's up to the programmer to keep track of things.