How to call an overriden method from parent class?

Hello, I have a basic question about inheritance. Let’s say for example I have a father class named Character, and two children classes called Player and Enemy:

 public class Character : MonoBehaviour {
    
    	// Use this for initialization
    	void Start () {
    
    	        Hello ();
    	}
    	
    	// Update is called once per frame
    	void Update () {
    		
    
    	}
    
    	public virtual void Hello()
    	{
    		print ("Character");
    	}
    }

I have this public virtual method I need to customize in the child classes:

public class Player : Character {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	public override void Hello()
	{
		print ("Player");
	}
}

And similarly for the Enemy class.
I created 3 gameobjects and attached one of the 3 scripts to each one, and only the Character class gave me an output.
The one above is just an example, what I would like to do is to call a series of instructions in the Character class (defined in the Character class), and add a custom behavior to some of them in the child classes. Is it the right approach to use hierarchy? Or should I use interfaces?

base.Hello(); // refers to the inherited class hello method

this.Hello(); // refers to this instance and the hello method

I recently ran into this problem as well. Your approach to using the hierarchy is correct here, given their will be multiple enemies.
Interfaces would best be used when you only want one object to exist that you can reference across the game.

One change I would make is to remove anything from the vitural method and always override it.