侧边栏壁纸
博主头像
这就是之谦博主等级

我们的征途是星辰大海

  • 累计撰写 182 篇文章
  • 累计创建 3 个标签
  • 累计收到 16 条评论
标签搜索

目 录CONTENT

文章目录

多态性2021.7.18

这就是之谦
2021-07-18 / 0 评论 / 0 点赞 / 408 阅读 / 524 字
温馨提示:
本文最后更新于 2021-07-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

多态

对象的多态性,父类的引用指向子类的对象

多态的使用,当调用父类同名同参数时,实际执行的是子类重写父类的方法

在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。(编译看左边父,运行看右边子)

我的理解:声明父类,new子类,简化代码。编译期定义虚拟父类,运行时确定具体子类。

虚拟方法调用

正常方法调用:

Person e = new Person();

e.eat();

Student e = new Student();

e.eat();

虚拟方法调用(多态情况下):

子类中定义了与父类同名同参数的方法(重写),在多态情况下,将此时父类的方法称为虚方法,父类根据赋给它的不同子类对象,动态调用属于子类的该方法。这样的方法调用在编译期是无法确定的。

Person e = new Student();

e.eat();

编译时类型和运行时类型

编译时e为Person类型,而方法的调用是在运行时确定的,所以调用的是Student类的eat方法----动态绑定

0

评论区