多态与反射

概念

多态

多态:多态就是同一个接口,使用不同的实例而执行不同操作。

此处的接口不要局限于Java中的interface。

多态实现方式:

  • 重写
  • 接口
  • 抽象类和抽象方法

反射

在C++中,可以通过函数指针

vector<void(*)()> v_func; 
vector<function<void()>> v_func;//又返回参数修改void
...
v_func[k]();//有传入参数加载括号内

来定义一个函数数组,就避免了在调用不同函数时反复使用switch...case来调用函数。

而Java中则可以用反射实现这个功能!

反射:JAVA反射机制是在运行状态中,对于任意一个类,都能够
知道这个类的所有属性和方法;对于任意一个对象,都能够调用
它的任意一个方法;

例子:

Sort st = new Sort();
Method method = st.getClass().getMethod("methodName", new Class[0]);
method.invoke(st, new Object[0]);

getclass():得到st所属类;

getMethod():得到该类的公有方法。第一个参数是方法名,第二个参数表示方法形参(相同方法名参数不同的情况)。此处new Class[0] = null;

method.invoke:执行该方法。第一个参数调用该方法的实例,对于静态方法可以用null代替,第二个参数是变长的,是该方法调用所使用的参数。

待续
posted @ 2020-10-19 16:44  AkimotoAkira  阅读(161)  评论(0编辑  收藏  举报