Java 反射练习

package com.interfaces;

public interface A {
	public void test();
}
package com.interfaces;

public class B implements A{

	@Override
	public void test() {
		System.out.println("This B");
	}

}
package com.interfaces;

public class C implements A{

	@Override
	public void test() {
		System.out.println("This C");
	}

}
package com.interfaces;

public class D {

	public  A a;
	
	public D(){
		super();
	}

	public D(A a) {
		this.a = a;
	}

	public static void main(String[] aegs) {
		 try {
			 //反射创建对象
			A s = (A)Class.forName("com.interfaces.C").newInstance();
			s.test();
			
			A b = new B();
			A c = new C();

			D d = new D(b);
			d.mainTest();
			
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

	public void mainTest() {
		a.test();
	}
}

猜你喜欢

转载自xinjiatao.iteye.com/blog/2212947