I am having some trouble with inheritance in Unity. I have two classes, one called Angry and one called Emotion, where Angry inherits Emotion.
Emotion looks like this:
public abstract class Emotion : MonoBehaviour {
    public abstract void initialize(float _strength, float _flux, UMAExpressionPlayer umaExpression);
    public abstract void emote();
    public void initialize(float _strength, float _flux, float _duration, UMAExpressionPlayer _umaExpression){
        initialize(_strength, _flux, _umaExpression);
    }
    void Update()
    {
    }
}
And Angry looks like this:
public class Angry : Emotion {
    public override void initialize(float _emotion_strength, float _flux, UMAExpressionPlayer _umaExpression) {
    }
    public override void emote()
    {
    }
}
Now to the problem. Instantiating Angry always returns null. I.e. (new Angry() == null) always returns true. But if i remove the inheritance from MonoBehaviour, i.e. remove ": MonoBehaviour" from Emotion, this stops being the case and I get an instance of Angry. Why is this? What am I missing here?
