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代替,第二个参数是变长的,是该方法调用所使用的参数。

    待续
  • 相关阅读:
    ASP.net 上传
    asp.net 上传
    asp.net dropdownlist和listbox
    jqeury之平移轮播
    vs2013的asp.net 管理
    jqeury轮播
    jqeury之轮播图
    重温委托(delegate)和事件(event)
    Log4Net
    解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问的方法
  • 原文地址:https://www.cnblogs.com/AkimotoAkira/p/13841051.html
Copyright © 2011-2022 走看看