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

    待续
  • 相关阅读:
    WebAPI中路由参数中包含字符-点“.”
    Web API 授权筛选器
    WebApi
    C#视频拍照、视频录制项目示例
    WPF 获取鼠标屏幕位置、窗口位置、控件位置
    C#中字符串转换为计算公式
    ffmpeg开发文档
    .net core控制台应用程序初识
    网络书籍
    ffmpeg命令参数详解
  • 原文地址:https://www.cnblogs.com/AkimotoAkira/p/13841051.html
Copyright © 2011-2022 走看看