来自一本书:
如果要调用由对象的子类定义的方法,该怎么办? 那是由超类的变量引用的?假设是SoftBall类 有一个名为riseBall的方法,它不是由Ball类定义的。你怎么 从Ball变量调用它?一种方法是创建子类的变量,然后使用赋值语句来转换对象:"
<iframe class="img-responsive" src="{{pdfLoc| trustThisUrl }}" ng-style="{
height: iframeHeight * 0.75 + 'px'
}" style="width:100%"></iframe>
我不明白这一点。为什么我不能直接从变量 b 调用该方法? (在这种情况下,变量 b 包含垒球对象)。为什么铸造?
答案 0 :(得分:5)
如何从Ball变量中调用它?
你不能。编译器不知道此Ball
是SoftBall
而不是BaseBall
。
你必须明确地施放。这只是对编译器说的一种方式:&#34;我比你更了解这个实例的类型&#34;。编译器信任你(主要是:它不会让你把它投射到String
),并让你处理后果(例如潜在的ClassCastException
)