作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果有声明
人类汤姆 = new Athlete();
而Athlete
是Human
的子类,其对象类型是tom
?
对于tom.method1()
并且两个类中都有一个method1()
,即。 Athlete.method1()
覆盖 Human.method1()
,
我们使用哪种method1()
?来自Athlete
类别或Human
类别的一个?
最佳答案
tom
的实际类型是 Athlete
。但是,由于 tom
的声明指定了 Human
,因此您只能访问 Human
(及其父类(super class))上定义的方法。
如果 Human
上的方法在 Athlete
中被覆盖,例如。 method1()
,则调用的是 Athlete
上的实现。
如果您将 tom
声明为 Athlete
类型(根据您评论中的问题),则 tom
的实际类型> 没有改变。不过,您现在可以访问仅在 Athlete
上定义的方法。
关于java - 类声明 - 不清楚的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54320134/
MVC3 中的助手是否在 Controller 和 View 中使用? 助手是放置常用 Controller 方法的正确位置吗? 我想创建一个通用方法来获取数据库中的所有子子 ID,并确保它位于正确的
有人可以阐明这两者之间的区别吗,因为它们存在于执行上下文中?我很难阅读 ECMA 262 v 5规范并清楚地看到差异。 谢谢你, 最佳答案 两者都是执行上下文的组件(相同类型),但它们有不同的用途(f
我是一名优秀的程序员,十分优秀!