java:向上向下转型问题 高手说明一下

2025-02-23 15:07:01
推荐回答(5个)
回答1:

你可用子类实例化父类,在继承图中,你的方向是向上的,所以这称为向上转型。就是把一个具体的类型转换为更广泛的类型。反之,就是向下转型。
其实这就与数据类型的隐式转换与显示转换类似。

回答2:

new 后面是什么就是什么对象, Person p = new Man() ;是父类引用 指向子类对象。

Man man = (Man)new Person() ; // 这个是错的。 运行时会报错,父类对象不能转换为子类对象。

回答3:

本来new Man()的类型是Man,现在用Person来接收,是将Man转成Person,由小转变大。
同理new Person()的类型是Person,用Man来接收,是将Person转成Man,由大转变小。

回答4:

把new Man()这个对象赋给左边的Person,是一个由小赋大的过程

回答5:

* 用父类声明,子类实例化的对象,叫[上转型对象]
* 1.上转型对象只能调用父类声明的方法。
* 2.如果子类重写了父类的方法,则调用子类的。
* (上转型对象不能调用子类新增的方法)