[问题] 父类别使用子类别定义的方法

楼主: Dong0129 (阿东跟上面讲的情况一样b)   2020-09-14 11:41:08
各位版友好,
发现有一种写法如下,
class Father{}
class Child extend Father
{
public void test(){}
}
main()
{
Father father=new father();
((Child)father).test();
}
请问((Child)father).test();用法的名称为何?
这样子呼叫有什么好处呢?
作者: ssccg (23)   2020-09-14 11:46:00
你有跑过? 这会ClassCastExceptionfather不是Child,不能cast成Child
作者: LPH66 (-6.2598534e+18f)   2020-09-14 13:10:00
名词叫做 downcast, 不过如楼上所说要真的参照子类别才能转用途基本上是有时你一开始拿到的只能是父类别参照但你能够确定 (不论透过设计或是透过 instanceof)它其实参照到某一个子类别, 那你就能转成子类别参照进而运用子类别才有的成员

Links booklink

Contact Us: admin [ a t ] ucptt.com