「java会自动向下转型」java自动向上转型

博主:adminadmin 2022-12-23 00:33:06 62

今天给各位分享java会自动向下转型的知识,其中也会对java自动向上转型进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java向下转型和向下转型是怎么一回事?请高人指点一下,谢谢!!

说白了就是变大变小变大,你当然愿意了,肯定不用强制你变小,你就有点不情愿了,就需要强制你向上转型也称装箱向下转型称为拆箱补充: (一)向上转型(1)定义: 把对某个对象的引用视为对其基类引用的做法被称为“向上转型”。

这主要是由于子类的对象可以看成是基类的对象这原因而得来的,也就是具有is-a关系。比如:

Useful useful = new MoreUseful();//右边是一个子类的对象,而左边是一个父类类型

//的变量,指向右边的子类对象。(2)基类可以接收发给导出类的任何消息,因为二者有完全相同的接口,我们只需要从导出类向上转型,永远不需要知道正在处理的对象的确切类型,这也就是多态性决定的。利用多态性,具有同样方法名和方法特征的方法根据调用方法的对象的类型,可以产生不同的动作,这极大地增加了程序员的表达能力。(1)向下转型概述继承可以确保所有的子类类具有基类的接口,且绝对不会少。那么子类除了有父类的方法,也可以有自己的额外的新方法(这些方法是基类所没有的),那么一旦向上转型,就不能调用子类中的新方法,那么能不能用一种方式调用这些新方法呢?当然有了,这时候就需要向下转型。(2)向下转型将超类的引用强制转换为子类类型就叫做向下转型。注意:将超类的引用赋给为子类类型的变量(没有进行显示地强制转换)是一个编译错误。总之:向下转型时,对象只能强制转换为其本身类型或者其超类类型。

java 中多态向下转型是怎么回事?

举个例子:

integer

num

=

new

integer(100);

有了自动装箱机制后,你就可以写成这样了:

integer

num

=

100;

编译器会自动将100这个int值转换成integer对象。

所以自动装箱就是java编译器在编译期间自动将原生类型转换成其对应的包装类型。

java 向上转型 向下转型

1.

引用a的类型是animal,是cat的父类。所以是“父类引用指向子类对象”。如果是“子类引用指向父类对象”,那应该写成

cat

a

=

new

animal();但这显然是不和逻辑的。

2.

你说的没错——“向上转型后,父类也只能调用父类已经有的方法”。但是子类如果覆盖了父类的方法,那么即使向上转型,方法的行为也表现为覆盖后的行为。这也是多态的一种体现。向上转型更多的用来体现一种编程上的“约定”。所有继承某个类或者实现某个接口的类,一定包含某个方法,这样在调用的时候,使得你也不必关系具体的实现细节,只要知道“这个类型中的某个方法能帮我完成工作”就可以了。

3.

向下转型,是“引用的类型”的变化,不是对象实例类型的变化。new什么,就是什么。不会因为向上或者向下转型而改变自己的类型。

4.

最后一个问题,不管向上还是向下转型,调用的都是实际类型中的那个方法。比如,animal

a

=

new

cat(); a.叫()。那这个叫就是cat类型实例中的“叫”方法。

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

向上或者向下转型

就要说到继承

比如有2个类

a

b

b继承a

b

b

=

new

b();

这个时候

a

a

=

b;

这种用法就是向上转型

使用父类的引用

引用子类对象

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

然后在上边的基础上

b

=

(b)a

这个就是向下转型

当用父类引用

引用子类对象

现在想不使用父类的引用

而使用子类的引用

就是向下转型

向下转型必须强制转型

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

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

如何理解java中的向下转型

Java里只有两种,一种是向上转型,一种是向下转型,其实原理都是一样的.

比如

人(People)

继承了

动物

这个类(Animal)

则向上转型代表

把子类赋值给父类

Animal

a

=

new

People();

向下转型则将父类的引用还原成实际的子类

People

p

=

(People)

a;

但是向下转型一定要是实际的子类,否则会报错.

比如现在多了一个

猴子(Monkey)

继承

动物类

之前

a

是通过

new

People()

得来的

但是向下转型的时候是不能转为猴子的,否则会报类转换异常.

Monkey

m

=

(Monkey)

a;

这样是会报错的.

用我们的语言其实也好理解,比如

人是属于动物,但是人不属于猴子,反之亦然,猴子也不属于人,但是是动物

java会自动向下转型的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java自动向上转型、java会自动向下转型的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。