- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Java 中,当要执行一个方法时,首先会在对象的真实类(定义对象的真实类型)中搜索它的声明。如果未找到,则检查父类(super class)。如果在那里也没有找到,则检查下一个父类,依此类推。但是,请看下面的示例:
SuperClass s = new SubClass(list of parameter);
s.someMethodExistOnlyInSubClass();
这会给我一个编译时错误。我以为,如前所述,它会先在SubClass
中寻找someMethodExistOnlyInSubClass()
,验证那里存在,然后马上执行。如果我使用 SuperClass
类型的变量来引用 SubClass
的实例,一些参数将通过调用 SuperClass
的构造函数 super()
并且对象将在那里被实例化。在这种情况下,剩下的参数去哪儿了?
最佳答案
通过将对 SubClass
实例的引用分配给 SuperClass
类型的变量,该变量被视为引用了 SuperClass 实例
。因此,它不知道 SubClass
中具体声明的任何方法。但请注意,在 SubClass
中执行的覆盖仍然有效。
在您描述的上下文中,要访问 someMethodExistOnlyInSubClass()
,您必须将 s
转换为 SubClass
类型。看下面:
((SubClass) s).someMethodExistOnlyInSubClass();
关于java - 多态性:从父类(super class)变量调用子类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52473250/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!