package p;

public class A implements I {
	/* (non-Javadoc)
	 * @see p.I#f()
	 */
	public void f(){
	} 

	/* (non-Javadoc)
	 * @see p.I#fz()
	 */
	public void fz(){
	} 

	/* (non-Javadoc)
	 * @see p.I#f1()
	 */
	public void f1(){
	} 

	/* (non-Javadoc)
	 * @see p.I#f1z()
	 */
	public void f1z(){
	} 

	//comment f11
	/* (non-Javadoc)
	 * @see p.I#f11()
	 */
	public void f11(){
	}

	/* (non-Javadoc)
	 * @see p.I#f2()
	 */
	public void f2(){
	}
}