title: Extending abstract classes and using same methods with different arguments
body: <p>First of all, here's my abstract class:</p>
  
  <pre><code>public abstract class GeometricObject2D implements Comparable {
    public abstract boolean contains(GeometricObject2D g);
    public abstract boolean contains(double x, double y);
    public abstract boolean overlaps(GeometricObject2D g);
    public abstract int compareTo(Object temp);
    public abstract double getArea();
    public abstract double getPerimeter();
  
  }
  </code></pre>
  
  <p>I'm supposed to extend it with two other classes, ComparableCircle2D and ComparableRectangle2D. Both contain all of the methods, except that they use their own arguments in the <em>contains</em> and <em>overlaps</em> methods, e.g:</p>
  
  <pre><code>public class ComparableCircle2D extends GeometricObject2D {
  //...
    public boolean contains(ComparableCircle2D circle){
    //method
    }
  //...
    public boolean overlaps(ComparableCircle2D circle){
    //method
    }
  //...
  }
  </code></pre>
  
  <p>This is the error I get:</p>
  
  <p><strong>Error:(1, 8) java: ComparableCircle2D is not abstract and does not override abstract method overlaps(GeometricObject2D) in GeometricObject2D.</strong></p>
  
  <p>Same goes for the other class. I don't fully understand what's wrong, so an explanation and a solution would be greatly appreciated.</p>
  
  <p>P.S: The arguments <em>have to</em> stay the same.</p>