Access method from base class, from collision with derived class

I am trying to compress my code into a cleaner approach. How do I access or call methods that are established in a base class, and then shared to all the derived?

Ex.
public class enemy_script01 : enemy_base { /* the same for every enemy */ }

The problem is with code like below, where each enemy has its own script(derived from base) even though I only need to access a method that is declared in the base( Hit(); )

// *** HIT FIREBALL ***
	public void hit_fireball(GameObject my_enemy_hit, int spell_rank)
	{
				// fireball

				if (my_enemy_hit.name == "enemy01") {
						enemy_script01 my_enemy_hit_script;
						my_enemy_hit_script = my_enemy_hit.GetComponent <enemy_script01> ();
						my_enemy_hit_script.Hit (1, 10);
						if (my_enemy_hit_script.can_be_burned) {
								my_enemy_hit_script.burned = true;
						}
			
				} else if (my_enemy_hit.name == "enemy02") {
						enemy_script02 my_enemy_hit_script;
						my_enemy_hit_script = my_enemy_hit.GetComponent <enemy_script02> ();
						my_enemy_hit_script.Hit (1, 10);
						if (my_enemy_hit_script.can_be_burned) {
								my_enemy_hit_script.burned = true;
						}
				} else if (my_enemy_hit.name == "enemy03") {
						enemy_script03 my_enemy_hit_script;
						my_enemy_hit_script = my_enemy_hit.GetComponent <enemy_script03> ();
						my_enemy_hit_script.Hit (1, 10);
						if (my_enemy_hit_script.can_be_burned) {
								my_enemy_hit_script.burned = true;
						}
				} else if (my_enemy_hit.name == "enemy04") {
						enemy_script04 my_enemy_hit_script;
						my_enemy_hit_script = my_enemy_hit.GetComponent <enemy_script04> ();
						my_enemy_hit_script.Hit (1, 10);
						if (my_enemy_hit_script.can_be_burned) {
								my_enemy_hit_script.burned = true;
						}
				}
	}// END FIREBALL

You can use SendMessage (or BroadcastMessage or SendMessageUpwards depending on the situation) to send a “OnHit” message to the “enemy hit” game object and bypass the need to identify any component.

However you have multiple parameters, and SendMessage can only handle one; in that case you can create a “HitEvent” class that you use as a parameter instead.

HitEvent hitEvent = new HitEvent ();
hitEvent.myDamageStrength = ....
hitEvent.myDamagePosition = ...
hitEvent.myDamageType = ....

my_enemy_hit.SendMessage ("OnHit", hitEvent );

Then in the enemy base class:

void OnHit(HitEvent event){
    ...
}