Multiple Inheritance Interfaces

I can’t use multiple inheritance, so I am trying to create interfaces.
The problem is that I ultimately need to instantiate the class that implimented the interface.
That class inherits MonoBehaviour sooo I can’t use the “new” keyword on it. Is there a way around this?

public interface ISheild
{
    void SheildsUp();
    void SheildsDown();
}

public class Sheild : MonoBehaviour, ISheild
{
    public void SheildsUp()
    {
        renderer.material.SetFloat ...   
    }
}

//////////////////////////////////////////////////////////////

public class Turret : MonoBehaviour, ISheild
{
    Sheild _Sheild = new Sheild();  // Errrr on new !!

Just add the component shield?

Yeah I don’t think you need multiple inheritance to do what you’re doing. Life can actually be much simpler.

This is exemplified by the core classes – GameObject, RigidBody, Component, and so forth, which are trivially able to talk to each other and tell if one of their brethren is attached to the current object.

What I tend to do is, say, write a turret behavior and a gun behavior and a shield behavior and simply have them look for each other if they need to interact (e.g. if I had an AI I could drop it on the object and it could look for a turret component and if it found it use it to aim; if it liked its aim it could use a gun component if it found one; if it was afraid of getting hit it could look for a shield component and use that).

So unless a turret is a type of shield there’s really no reason for it to implement a shield-based interface.

If you really want OO-Code in Unity, you have to bend over backwards and clap a samba-rythm.
Having every script that manipulates the world a MonoBehaviour is not OOP in my book, as it limits you and binds your scripts to GameObjects.

Most of the time the effort it takes to do real OOP is too much to justify its advantages. In a big project however, I would try to do this.