title: How does @Override annotation work in java?
body: <p>I understand that @Override annotation in java simply tells the compiler to check and see if it's actually overriding a method in the super class during compile time. </p>
  
  <p>From the article that I read: <a href="https://dzone.com/articles/how-annotations-work-java" rel="nofollow noreferrer">https://dzone.com/articles/how-annotations-work-java</a>. </p>
  
  <p>@Override annotation definition is simply the following:</p>
  
  <pre><code>@Target(ElementType.METHOD)
  @Retention(RetentionPolicy.SOURCE)
  public @interface Override {
  }
  </code></pre>
  
  <p>This annotation definition has no logic on telling the compiler to look for the same method signature in the super class. </p>
  
  <p>Is the logic to check it's super class for the same method signature define in the java compiler?</p>