方法表:方法槽:在一个类里边可能有一些成员和一些方法,一个类里有专门的地址,记录方法表的地址,根据方法表找到方法
当子类继承了父类以后,会拿到父类的方法表,有一个方法槽。

当子类重写父类的方法以后,子类重写了一份父类的方法。如果重写了,会从槽里找重写后的方法,this点方法,指向重写后的方法,base点方法,调用的是父类的方法。虽然是子类如果没有重写,依然还是调用父类的方法。

public class Person{public int Id { get; set; }public string Name { get; set; }public virtual void sayHi(){Console.WriteLine("地球人");}}public class Chinese : Person{public override  void sayHi(){Console.WriteLine("中国");}}public class America : Person{public override void sayHi(){Console.WriteLine("美国");}}

转载于:https://www.cnblogs.com/xiaoyueryeah/p/8427954.html

通过虚方法实现方法重写-多态相关推荐

  1. C++ day22 继承(二)基类指针数组通过虚方法实现智能的多态

    继承一共有三种: 公有继承 私有继承 保护继承 文章目录 公有继承 基类和派生类的关系 is-a(用公有继承表示"是一种"的关系) has-a uses-a is-like-a i ...

  2. C# 中的多态和虚方法,如何实现多态和使用虚方法?

    在 C# 中,多态(Polymorphism)是面向对象编程的基本特性之一,它允许使用不同的对象和方法来执行同一操作.C# 中实现多态的方式主要是通过虚方法和抽象类. 虚方法是一种允许子类覆盖的方法, ...

  3. 面向对象 详解笔记 方法 类 对象 封装 继承 重写 多态 接口

    文章目录 面向过程&面向对象 面向过程 面向对象 什么是面向对象 回顾方法及加深 方法的定义 修饰符 返回类型 break:跳出switch,结束循环和return的区别 方法名:注意规范就o ...

  4. java基础2:this、static、final、abstract关键字、代码块、生成API工具包、继承、多态、方法重载和重写,抽象类、接口、常见异常、java权限修饰符、选择排序思想和程序和内部类

    1.this关键字 this表示当前类对象的地址空间值的引用.就是说,this代表了new出来的对象 其最大作用就是解决了构造器中局部变量隐藏成员变量.即用this.变量名 = 变量名 区分. 2.s ...

  5. java方法重载和重写在jvm_重载和重写在jvm运行中的区别(一)

    1.重载(overload)方法 对重载方法的调用主要看静态类型,静态类型是什么类型,就调用什么类型的参数方法. 2.重写(override)方法 对重写方法的调用主要看实际类型.实际类型如果实现了该 ...

  6. C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记09--构造方法/析构方法/继承/多态/封装...

    一.构造方法 当创建一个类时, 系统会自动创建一个默认的无参构造方法, 这个方法和类同名, 在创建对象的时候自动调用. 默认的构造方法里面什么也没有, 重写之后就可以在创建对象的时候同时搞点事情了. ...

  7. java中的static方法可以被重写吗?(从方法调用过程理解)

    答案是:不可以. 首先明确一点,在子类中重写父类的static方法,是不会报错的,编译也可以通过,但是在通过一个声明为父类,实际类型为子类的引用变量调用该方法时,发现被调用的仍是父类中原本以为会被覆盖 ...

  8. PHP中类重写方法,php中重写方法有什么规则

    php中重写方法的规则有:1.final修饰的类方法不能被子类重写:2.如果要重写父类方法,那么参数个数必须一致:3.在重写时,访问级别只可以等于或大于父类,不可提升访问级别. 方法重写规则: (学习 ...

  9. 方法重载和重写的区别,以及如何体现了多态性

    总结 (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading). 总结为 "两同一不同" 同一个类 ...

最新文章

  1. java三角形创建子类_如何创建子类,以便参数属于Java中的子类类型
  2. 快速入门在Vue中使用滑动插件Swiper
  3. [美团 CodeM 初赛 Round A]最长树链
  4. java中值滤波_Java实现图像中值滤波
  5. 推介英特尔® 黑带软件开发人员!
  6. C#的6种常用集合类大比拼
  7. k8s Storage Classes
  8. 暴走漫画系列之高仿淘宝收货地址(附demo)
  9. JAVA JVM优化总结
  10. python面向对象编程指南pdf_Python面向对象编程指南(pdf+epub+mobi+txt+azw3)
  11. 收款收据设计html,最新收款收据模板的格式
  12. spring的注入和直接new一个对象有什么不同?
  13. 计算机主机光盘故障,光盘放进电脑里打开了显示函数不正确是什么问题?怎么处理?...
  14. Daimayuan Online Judge 小蜗的疑问
  15. 结构化数据、半结构化数据、非结构化数据
  16. 计算机网络重要知识点总结(期末复习笔记)
  17. 环境建环和给排水工程计算机应用试卷,环境建环和给水排水工程计算机应用教材内容...
  18. 动手写一个抖音首页的效果
  19. 3d生活馆迪万3d打印机产品
  20. 【mindgo】 问财+PSY策略

热门文章

  1. python设计自定义函数_python
  2. Objective-C 日记⑤ 内存管理、协议、Category 视频笔记
  3. 分布式架构的前世今生...
  4. BZOJ4205卡牌配对——最大流+建图优化
  5. Ajax+Node.js前后端交互最佳入门实践(01)
  6. 20172327 2017-2018-2 《程序设计与数据结构》第五周学习总结
  7. [Android] 输入系统(三):加载按键映射
  8. sessionId与cookie 的关系(百度文库)
  9. linux下libpcap抓包分析
  10. c#图像灰度化、灰度反转、二值化