You can’t extend multiple in the same script, same with c#, you will have to create a stack of class inheritance in order to do what you need. Or you could use interfaces… perhaps something like below, completely untested.
interface IProjectile{
function Initialize(a, b, c);
}
class Arrow extends MonoBehaviour implements IProjectile {
function Initialize(a, b, c){
// do some business
}
}
var projectileInstance = Instantiate(projectile,pos,rot);
projectileInstance.GetComponent.<Projectile>().Initialize(a,b,c);
if this works like c# then anything implementing the interface should have no issues with the contract that interface explicitly says exists on any type that has implemented it. This allows you to call multiple objects that use the same interface(contract) without knowing all the crap about the full class implementation and invoke methods that are in the interface.