title: How to define interfaces in Dart?
body: <p>In Java, I might have an interface <code>IsSilly</code> and one or more concrete types that implement it:</p>
  
  <pre class="lang-dart prettyprint-override"><code>public interface IsSilly {
      public void makePeopleLaugh();
  }
  
  public class Clown implements IsSilly {
      @Override
      public void makePeopleLaugh() {
          // Here is where the magic happens
      }
  }
  
  public class Comedian implements IsSilly {
      @Override
      public void makePeopleLaugh() {
          // Here is where the magic happens
      }
  }
  </code></pre>
  
  <p>What's the equivalent to this code in Dart?</p>
  
  <p>After perusing the official <a href="https://www.dartlang.org/docs/dart-up-and-running/contents/ch02.html#classes" rel="noreferrer">docs</a> on classes, it doesn't seem that Dart has a native <code>interface</code> type. So, how does the average Dartisan accomplish the interface segregation principle?</p>