zoukankan      html  css  js  c++  java
  • 多态与反射

    概念

    多态

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

    此处的接口不要局限于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代替,第二个参数是变长的,是该方法调用所使用的参数。

    待续
  • 相关阅读:
    POST、GET请求中文参数乱码问题
    表的复制——sql语句
    mysql之limit m,n
    nullpointerxception——处理思路
    public-private-protected-默认缺省 的区别
    final关键字的作用
    使用注解来构造IOC容器
    成功的背后!(给所有IT人)
    jQuery对象复制
    键盘录入, if语句
  • 原文地址:https://www.cnblogs.com/AkimotoAkira/p/13841051.html
Copyright © 2011-2022 走看看