title: It looks like I'm instantiating this SpeechAPI interface. How is that possible?
body: <p>I am using Microsoft Text-to-Text Speech feature in my project. But I have a question about that, actually not directly about that. So :</p>
  
  <p>Normally programmers when creating Interface, they put I as a prefix of the interface name like IReadable,IEnumerator etc. But I've come across something that actually shocked me.</p>
  
  <p>in Microsoft Text Speech DLL there is something like this : SpVoice which is interface (they didn't put I as prefix for some reason and I don't know why ?) and SpVoiceClass. So then what's the problem you may ask, Here : </p>
  
  <pre><code>SpVoice speak= new SpVoice(); //I created an object from SpVoice Interface
  speak.Speak("Hello StackOverFlow"); //and it speaks and say exactly what I write.
  </code></pre>
  
  <p>and</p>
  
  <pre><code>SpVoiceClass speak =  new SpVoiceClass();
  speak.Speak("Hello Kowanichi"); //and it does the same thing.
  </code></pre>
  
  <p>The thing I don't get is how ? How does the first one work although it says it is an interface with tons of unimplemented methods etc.</p>
  
  <p>Please some one explain me HOW ?</p>
  
  <p>I am really confused now and maybe Microsoft developers didn't put I prefix for that reason, it can be instantiated. </p>
  
  <p>Thanks in advance. 
  Hope I describe my problem clearly.</p>
  
  <p><strong>Here is the image that I want you to see :</strong>
  <a href="https://i.stack.imgur.com/rOsxz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/rOsxz.png" alt="alt text"></a><br>
  <sub>(source: <a href="http://www.pixelshack.us/images/dngpe9kzoq83obtiami.png" rel="nofollow noreferrer">pixelshack.us</a>)</sub>  </p>