尝试访问子类的属性时出现“找不到符号”,但变量的类型为超类

时间:2018-08-14 23:31:24

标签: java android polymorphism

这里的Java菜鸟,我有一个OutputStream类型的变量,后来在函数中有一个条件,即我将OutputStream分配给FileOutputStream或ByteArrayOutputStream的新实例,但是每当我尝试访问属于任何属性的任何属性时子类。我得到一个7,12,4,7,11。 有没有一种方法可以保留相同父类的变量,并尝试告诉运行时每当我需要访问该属性时,它将是子类的类型?

这是一些伪代码

12,4,7,11,-858993449,58196502,58196502,58196502,58196502,58196502

1 个答案:

答案 0 :(得分:4)

您必须像这样投射它:

(ByteArrayOutputStream output).buf

Java不知道它可以安全地在ByteArrayOutputStream中调用该方法,因为OutputStream没有该方法。