package p;

public abstract class A {
	/**
	 * @deprecated Use {@link #k()} instead
	 */
	abstract void m();

	abstract void k();
}

class B extends A {
	/**
	 * @deprecated Use {@link #k()} instead
	 */
	void m() {
		k();
	}

	void k() {
		//Foo
	}
}

class C extends B {
	/**
	 * @deprecated Use {@link #k()} instead
	 */
	void m() {
		k();
	}

	void k() {
		//Bar
		C c= new C() {
			/**
			 * @deprecated Use {@link #k()} instead
			 */
			void m() {
				k();
			}

			void k() {
				// X
			}
		};
	}
}
