title: How to make a interface base property, then implement with the derived?
body: <p>I am creating a chat app. In the chat, users can send three types of messages: images, files, and text messages. I am trying to create an interface called <code>IMessege</code> that contain 3 class properties: </p>
  
  <pre class="lang-cs prettyprint-override"><code>interface IMessege
      {
          object content { get; }
          User sender { get; }
          DateTime sent { get; }
      }
  </code></pre>
  
  <p>Then I want to implement the interface in 3 classes: <code>FileMessege</code>, <code>ImageMessege</code> and <code>StringMessege</code>. I want them all to have <code>User sender</code> and <code>DateTime sent</code>, but the <code>content</code> I want to be from type <code>string</code> at <code>StringMessege</code>, from type <code>file</code> at <code>FileMessege</code> etc...</p>
  
  <p>I did not think this is going to be a problem since all these classes inherit from <code>object</code>, but apparently it is. </p>
  
  <p>how can I do it?</p>