向上转型和向下转型 向上转型和向下转型哪个安全

教育资讯 2025-01-05 10:13:36

向上转型&向下转型

向上转型也称为隐式转型或者自动转型

向上转型和向下转型 向上转型和向下转型哪个安全向上转型和向下转型 向上转型和向下转型哪个安全


向上转型和向下转型 向上转型和向下转型哪个安全


向上转型和向下转型 向上转型和向下转型哪个安全


向上转型和向下转型 向上转型和向下转型哪个安全


父类引用指向子类实例,可以调用子类重写父类的方法以及父类派生的方法,无法调用子类的方法

注意:父类中的静态方法无法被子类重写,所以向上转型之后,只能调用父类原有的静态方法

小类转型为大类

向下转型也称为强制类型转换

子类引用指向父类对象,此处必须进行强转,此处可以调用子类特有的方法

必须满足转型条件才能进行强转

instanceof运算符 返回true/false 左边的对象是否时右边类的实例,判断某个对象是否满足右侧类的实例特征

左侧对象的引用指向实例类型的时候,它自己类型的时候,以及它这个类的父类类型的时候,这个表达式的结果都是true

同一个作行为,针对不同的参数,返回不同的实例对象,完成不同的作结果的时候,比较适用于多态的作

Ja面向对象多向上转型和向下转型有什么区别

若想作拥有共同父类的不同(子)类们的实例,就向上转型;

若想当成指定的具体的子类的实例,就向下转型。

越向上,概念越模糊,可以代表多种不同的类的实例,

越向下,概念越具体详细,可以代表特定的类的实例。

ja中向上转型和向下转型有何用途

Person 可以表示为一个抽象的东西 就是人。比如说人可以唱歌, 就好比Person类中有一个sing方法.

那么这个抽象的类(Person 人)可以具体到两类或者更多类 比如 男人,女人 。

Man extends Person 或者 Woman extends Person

那么男人 还有 女人 分别实现sing方法。 因为男人和女人唱歌总还是有区别的嘛。

当 Person p = new Man(); p.sing(); 这个时候就是调用男人唱歌的sing方法

当 Person p = new Woman(); p.sing(); 这个时候就是调用女人的唱歌的sing方法

这样其实就是一个ja的继承,多态. 利于程序扩展. 你需要理解这种设计方式,会让你写出更易维护,简洁的代码。

一般实际工作中person都会是一个接口,而接口不能new对象,就无法调用方法,这时候就要向上转型,再调用方法,而且只能调用接口里的方法,而不能调用实现类方法。

为了多态,主要是参数多态和返回类型多态。省很多代码的。

ja中向上转型,向下转型,强制类型转换的原理?

向上或者向下转型

就要说到继承

比如有2个类

ab

b继承a

先b

b=

new

b();

这个时候

aa

=b;

这种用法就是向上转型

使用父类的引用

引用子类对象

向上转型是自动的不需要其他作

然后在上边的基础上

b=

(b)a

这个就是向下转型

当用父类引用

引用子类对象

现在想不使用父类的引用

而使用子类的引用

就是向下转型

向下转型必须强制转型

必须确定对象确实是子类对象

如果是父类对象那就会报错

在ja里面的向上转型和向下转型的具体好处在哪里?

向上转型是安全的 向下转型却不一定是安全的

向下转型成为强制类型转换 其意思是从父类转为子类 转了后你可以拥有更多的方法 因为子类通常有比父类更多的方法

向上转型称为抽象

给你举个例子

比如说一个工程 的main方法里面调用了其他地方的一个方法 该方法有一个参数 我设方法的括号里为Person person 现在你要去调这个方法 你往里面传人 美国人 该方法都能跑起来 并且会通过多态调用不同的子类实现方法 但你如果不这样做 设你把参数定为英国人 那你如果往里面传人 这个方法就跑不起来了 你就要去改代码 反之 你就不用改动任何代码

版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。