`
wusuoya
  • 浏览: 630818 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

方法以及成员变量的动态绑定

    博客分类:
  • Java
阅读更多

在运行过程中,成员变量(包括静态变量和实例变量)以及静态方法都和引用变量的声明类型绑定, 实例方法将和实例绑定.举例如下:

class Father{

private int private_var;
static int static_var;
public int public_var;

private void private_method(){}
static void static_method(){}
public void public_method(){}

}

class Son extends Father{

private int private_var;
static int static_var;
public int public_var;

private void private_method(){}
static void static_method(){}

}

以上代码中,子类Son和父类Father具有同名的变量和方法.对于以下代码,引用变量f声明为Father类型,实际引用的是Son的实例,那么通过变量f来访问成员变量和方法,绑定关系如下:

Father f=new Son();

int v1=f.private_var; //bind with father's private_var
int v2=f.static_var; //bind with father's static_var
int v3=f.public_var; //bind with father's public_var

f.private_method(); //bind with father's private_method,私有的
f.static_method(); //bind with father's static_method
f.public_method(); //bind with son's public_method,继承父类的

分享到:
评论

相关推荐

    WPF的数据绑定——控件与类成员及类对象成员双向绑定

    最近研究WPF,遇到并解决了一些难题(至少是初学者的入门难题),包括: ...3)控件如何绑定类成员变量? 4)控件如何绑定类对象的成员变量? 5)每次加载页面时,都会重新初始化,如何保持数据不变?

    Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析

    本文实例讲述了Python面向对象程序设计类变量与成员变量、类方法与成员方法用法。分享给大家供大家参考,具体如下: 类变量与成员变量 在类中声明的变量我们称之为类变量[静态成员变量], 在init()函数中声明的变量...

    详解C++虚函数的工作原理

    函数调用与函数本身的关联,以及成员访问与变量内存地址间的关系,称为绑定。 理解了绑定后再理解静态与动态。 静态绑定:指在程序编译过程中,把函数调用与响应调用所需的代码结合的过程,称为静态绑定。发生在...

    学学Python_43类的成员02 调用父类构造函数

    调用父类构造函数,对应文件:ClassElement2,文章:https://blog.csdn.net/yysyangyangyangshan/article/details/84311848

    C#语言规范(4.0版本)

    1.6.6.2 方法体和局部变量 17 1.6.6.3 静态方法和实例方法 17 1.6.6.4 虚方法、重写方法和抽象方法 18 1.6.6.5 方法重载 20 1.6.7 其他函数成员 21 1.6.7.1 构造函数 22 1.6.7.2 属性 23 1.6.7.3 索引器 23 1.6.7.4 ...

    Lua-C 绑定库LuatinkerE.zip

    LuatinkerELua-C 绑定库"lua_tinker"的C 14和Lua 5.3扩展版本。使用大量C 14特性Variadic Template 和 index_sequence, SFINAE enable_if 和 type_traits, tuple, function, forward_ref, decltype(auto)。通过vc...

    候捷谈Java反射机制

    这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。  Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的...

    微软C#语言规范,C#语言教程中文版

    1.6.6.2 方法体和局部变量 17 1.6.6.3 静态方法和实例方法 17 1.6.6.4 虚方法、重写方法和抽象方法 18 1.6.6.5 方法重载 20 1.6.7 其他函数成员 21 1.6.7.1 构造函数 22 1.6.7.2 属性 23 1.6.7.3 索引器 23 1.6.7.4 ...

    C#语言规范4.0

    1.6.6.2 方法体和局部变量 17 1.6.6.3 静态方法和实例方法 17 1.6.6.4 虚方法、重写方法和抽象方法 18 1.6.6.5 方法重载 20 1.6.7 其他函数成员 21 1.6.7.1 构造函数 22 1.6.7.2 属性 23 1.6.7.3 索引器 23 1.6.7.4 ...

    C#语言规范(2.0,3.0,4.0合集)

    1.6.6.2 方法体和局部变量 17 1.6.6.3 静态方法和实例方法 17 1.6.6.4 虚方法、重写方法和抽象方法 18 1.6.6.5 方法重载 20 1.6.7 其他函数成员 21 1.6.7.1 构造函数 22 1.6.7.2 属性 23 1.6.7.3 索引器 23 1.6.7.4 ...

    C#_语言规范_4.0_中文版

    1.6.6.2 方法体和局部变量 17 1.6.6.3 静态方法和实例方法 17 1.6.6.4 虚方法、重写方法和抽象方法 18 1.6.6.5 方法重载 20 1.6.7 其他函数成员 21 1.6.7.1 构造函数 22 1.6.7.2 属性 23 1.6.7.3 索引器 23 1.6.7.4 ...

    Java入门教程(微学苑)-part1

    3.4 访问成员变量和方法 44 3.5 Java访问修饰符 45 3.6 public:公有的 45 3.7 protected:受保护的 45 3.8 private:私有的 46 3.9 默认的:不使用任何关键字 47 3.10 访问控制和继承 47 3.11 如何使用访问控制符 ...

    科大讯飞笔试题2013

    析构函数和普通成员的区 析构函数和普通成员的区 析构函数和普通成员的区 析构函数和普通成员的区 析构函数和普通成员的区 析构函数和普通成员的区 析构函数和普通成员的区 别 1. 答案 : 冒泡排序 冒泡排序 :优点...

    《Java和Android开发实战详解》第6到10章源代码-by 南邮-陈杨

    9.3.1 静态绑定与动态绑定 180 9.3.2 Java语言支持的多态 181 9.4 多态的实现 181 9.4.1 使用类继承来实现多态 181 9.4.2 使用接口来实现多态 184 9.5 包 186 9.5.1 Java包基础 186 9.5.2 package和...

    JavaLearnSummary:java学习总结

    final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时在动态绑定; Ø 修饰变量:如果是基本数据类型,则一旦被初始化,值不能更改;如果是引用类型,一旦被初始化,不能再指向另外的对象,...

    备忘录实验报告.doc

    以下是对类的具体分析: 事件类的成员变量中应当包含以下信息: 内容(content) 标识符用以唯一标识(id) 是否设置提醒(reminder) 事件提醒时间(time) 标题(title) 对应成员变量的成员函数有: Event():构造一个空...

    Visual C++开发经验技巧宝典(第1章)

    0061 如何利用虚函数实现动态绑定 25 0062 如何利用抽象类进行数据封装 25 0063 数据类型与类对象大小的区别 26 0064 实现类的强制转换 26 1.8 高级函数 27 0065 如何重载操作符 27 0066 如何定义重载...

    解析C++中的虚拟函数及其静态类型和动态类型

    虚拟函数是C++语言引入的一个很重要的特性,它提供了“动态绑定”机制,正是这一机制使得继承的语义变得相对明晰。 (1)基类抽象了通用的数据及操作,就数据而言,如果该数据成员在各派生类中都需要用到,那么就...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    17.7.3 简化语法3:局部变量不需要手动包装到类中即可传给回调方法 17.8 委托和反射 第18章 定制attribute 18.1 使用定制attribute 18.2 定义自己的attribute类 18.3 attribute的构造器和字段/属性的数据类型 ...

Global site tag (gtag.js) - Google Analytics