Discuss / Java / 接口实例化总结

接口实例化总结

Topic source

首先确定,java中接口不能直接实例化对象,需要一个对应的实现类,去向上转。

如有一个接口

public interface Hello{

public void getHello;

}

创建接口实例的已知方式有:

1.编写实现类

public class HelloSon{

@override

public void getHello{

System.out.print("Hello");

}

}

Hello hello = new HelloSon();

1.匿名内部类:

new Hello(){

@override

public void getHello{

System.out.print("Hello");

}

}

3.反射中的Proxy动态代理模式.newProxyInstance方法

InvocationHandler handler = new InvocationHandler() {

            @Override

            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

                System.out.println(method);

                if (method.getName().equals("morning")) {

                    System.out.println("Good morning, " + args[0]);

                }

                return null;

            }

        };

        Hello hello = (Hello) Proxy.newProxyInstance(

            Hello.class.getClassLoader(), // 传入ClassLoader

            new Class[] { Hello.class }, // 传入要实现的接口

            handler); // 传入处理调用方法的InvocationHandler

        hello.getHello();


  • 1

Reply