title: What are Keys in the Stateless widgets class?
body: <p>In the flutter docs there's sample code for a stateless widget subclass as shown:</p>
  
  <pre><code>class GreenFrog extends StatelessWidget {
    const GreenFrog({ Key key }) : super(key: key);
  
    @override
    Widget build(BuildContext context) {
      return new Container(color: const Color(0xFF2DBD3A));
    }
  }
  </code></pre>
  
  <p>and this</p>
  
  <pre><code>class Frog extends StatelessWidget {
    const Frog({
      Key key,
      this.color: const Color(0xFF2DBD3A),
      this.child,
    }) : super(key: key);
  
    final Color color;
  
    final Widget child;
  
    @override
    Widget build(BuildContext context) {
      return new Container(color: color, child: child);
    }
  }
  </code></pre>
  
  <p>What is a key and when should this super constructor be used? It seems like if you have your own constructor you must have {Key key} why? I've seen other examples where the super keyword is <strong>not</strong> used so this is where my confusion is. </p>