Community
Participate
Working Groups
Build Identifier: 20110615-0604 Pushing down a method that contains a super access may change program's behavior by changing the binding of the super access to an overridden method. Reproducible: Always Steps to Reproduce: Steps to Reproduce: 1. Create the classes: public class A { public int k() { return 10; } } public class B extends A { public int k() { return 20; } public int m() { return super.k(); } } public class C extends B { public static void main(String[] args) { C c = new C(); System.out.println(c.m()); } } 2. This program prints 10. Apply a push down method on m(): public class A { public int k() { return 10; } } public class B extends A { public int k() { return 20; } } public class C extends B { public int m() { return super.k(); } public static void main(String[] args) { C c = new C(); System.out.println(c.m()); } 3. The behavior of the program changes. Now, the program prints 20.
*** This bug has been marked as a duplicate of bug 211755 ***