gpt4 book ai didi

java - 为什么在调用子类的特定方法时必须转换对象?

转载 作者:行者123 更新时间:2023-12-01 20:52:03 24 4
gpt4 key购买 nike

例如,

Person p = New Person()

Person z = New Adult()

假设成人类有自己的方法,称为drive(),为什么我不能这样做:

z.drive()

我知道这行不通,但是这行不通背后的逻辑是什么?当您说:Person z = New Adult()时,您不是指定它是一个Adult实例吗?

最佳答案

它背后的“逻辑”不起作用是因为 Java 就是这样设计的。 Java 是一种静态类型语言,这意味着每个变量在编译时都有一个声明的类型。 Java 也是强类型的,这意味着可以保存的值和支持的操作仅限于声明的类型。此强制执行称为 type safety .

static type checking的优势是编译器将阻止您分配不兼容的类型或调用不可用的方法。错误可以在编译时与运行时捕获。

尝试搜索“强类型与弱类型”,这将提供更多详细信息、参数以及方法的优缺点。

关于java - 为什么在调用子类的特定方法时必须转换对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com