多态的条件与向上转型 — 程序设计判断题
题目
设类 Shape 中定义了方法 area(),类 Circle 继承 Shape 并重写了 area(),同时 Circle 新增了特有方法 radius()。执行语句 Shape s = new Circle(); 后,编译器依据引用类型 Shape 检查调用合法性,运行时依据对象实际类型 Circle 执行重写后的 area(),即“编译看左边,运行看右边”;但由于 s 的声明类型是 Shape,表达式 s.radius() 无法通过编译,必须先用 instanceof 判断类型后向下转型为 Circle 才能调用 radius()。以上关于该多态场景的表述是否完全正确?