]> source.dussan.org Git - sonarqube.git/blob
5d0a90d7c874a5ba69b2396e55db681faef2e051
[sonarqube.git] /
1 <p> The method in the subclass doesn't override a similar method in a superclass because the type of a parameter doesn't exactly match
2 the type of the corresponding parameter in the superclass. For example, if you have:</p>
3
4 <blockquote>
5 <pre>
6 import alpha.Foo;
7 public class A {
8   public int f(Foo x) { return 17; }
9 }
10 ----
11 import beta.Foo;
12 public class B extends A {
13   public int f(Foo x) { return 42; }
14   public int f(alpha.Foo x) { return 27; }
15 }
16 </pre>
17 </blockquote>
18
19 <p>The <code>f(Foo)</code> method defined in class <code>B</code> doesn't
20 override the 
21 <code>f(Foo)</code> method defined in class <code>A</code>, because the argument
22 types are <code>Foo</code>'s from different packages.
23 </p>
24
25 <p>In this case, the subclass does define a method with a signature identical to the method in the superclass,
26 so this is presumably understood. However, such methods are exceptionally confusing. You should strongly consider
27 removing or deprecating the method with the similar but not identical signature.
28 </p>