title: How can I use the default implementation of a trait method instead of the type's custom implementation?
body: <p>Some trait methods have default implementations which can be overwritten by an implementer. How can I use the default implementation for a struct that overwrites the default?</p>
  
  <p>For example:</p>
  
  <pre><code>trait SomeTrait {
      fn get_num(&amp;self) -&gt; i32;
      fn add_to_num(&amp;self) -&gt; i32 {
          self.get_num() + 1
      }
  }
  
  struct SomeStruct;
  impl SomeTrait for SomeStruct {
      fn get_num(&amp;self) -&gt; i32 {
          3
      }
      fn add_to_num(&amp;self) -&gt; i32 {
          self.get_num() + 2
      }
  }
  
  fn main() {
      let the_struct = SomeStruct;
      println!("{}", the_struct.add_to_num()); // how can I get this to print 4 instead of 5?
  }
  </code></pre>