java中向上转型和向下转型有何用途
发布网友
发布时间:2022-04-30 16:07
我来回答
共5个回答
热心网友
时间:2022-06-27 02:01
无论是上转还是下转都是为了让类的使用范围和适用范围发生变化,以便操作不同范围的变量或者方法。
1上转型是指将子类对象使用父类引用进行引用。
得:上转型对象可以操作和使用子类继承或者重写的方法。
失:上转型对象丧失了对子类新增成员变量或新增的方法的操作和使用。
2与向上转型相反,即是把父类对象转为子类对象:作用也与上转相反。
java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象。子类和父类中定义同名的变量时,仅仅是隐藏了,变量没有多态性;而对于覆盖的方法,Java表现出多态性,会调用更具体的子类里面的方法,无论从哪里调用,无论使用什么引用类型调用。
热心网友
时间:2022-06-27 02:01
一般实际工作中person都会是一个接口,而接口不能new对象,就无法调用方法,这时候就要向上转型,再调用方法,而且只能调用接口里的方法,而不能调用实现类方法。
热心网友
时间:2022-06-27 02:02
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方法
这样其实就是一个java的继承,多态. 利于程序扩展. 你需要理解这种设计方式,会让你写出更易维护,简洁的代码。追问比如Persong类中定义只有两个变量 String a = "国歌" String b = "共青团团歌" 但是在Man类中不仅继承有国歌 团歌 还有一个自己的String c = "国际歌"。在Person 中sing()函数中打印自己会唱的歌,在Man中sing()函数中也打印自己会唱的歌。那么用向上转型就会打印出国歌,共青团团歌和一个NULL,那么如此使用为哪般?实在不理解,跪求实际开发中用途案例。以及在安卓开发中,转型使用是否频繁,谢谢
热心网友
时间:2022-06-27 02:02
为了多态,主要是参数多态和返回类型多态。省很多代码的。
热心网友
时间:2022-06-27 02:03
你是学mars老师的视频吧?面向对象的感觉慢慢就会懂了,不用着急,到了你实际开发的时候你觉得这样写代码很麻烦啊多重复什么的,你就会去研究面向对象啦!慢慢就成长起来了。
Java向上转型和向下转型
Java中的向上转型和向下转型是两种不同的类型转换策略。向上转型是指将子类类型的对象赋值给父类类型的变量,这样做的好处是可以使用父类类型的引用调用子类的方法,但调用的是哪个具体子类的方法则取决于运行时的实际对象类型。例如:DEMO: 向上转型 尽管可以调用子类重写的方法,但不能直接使用父类类型的...
java中对象的向上向下转型在开发中用于实现什么功能
1上转型是指将子类对象使用父类引用进行引用。得:上转型对象可以操作和使用子类继承或者重写的方法。失:上转型对象丧失了对子类新增成员变量或新增的方法的操作和使用。2与向上转型相反,即是把父类对象转为子类对象:作用也与上转相反。java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象...
Java学习:向上转型和向下转型
总的来说,向上转型与向下转型在Java中都是实现多态性和代码复用的关键手段,但必须在正确的情境下和妥善处理类型关系时使用。
java中向上转型和向下转型是用来干什么的
在就是在main中要是有什么Animal animal=new Dog();Feeder feeder=new Feeder();feeder.feed(animal);此时调用的就是dog而不是animal,反正最终就是体现了多态,你不知道是喂的什么东东,用动物这个包装起来了,可能是狗,也可能是猫,这就形成了多态。
求教个关于java继承的问题
一、向上转型与向下转型。对象类型的转换在Java语言平台中经常遇到,主要包 括向上转型与向下转型操作。程序开发人员需要熟练掌握这两个转型的方法以及其中容易出错的地方。如何来了解这两个转型的区别呢?笔者认为,以一个现实的例 子作为比喻,可能会更加的容易理解。如现在有动物、鸟类、燕子三个名词,...
Java中的多态到底有什么实际开发作用
JAVA语言特征之一多态机制,故名思议就是多种变化形态。在实际的开发当中一般都应用在两个方面,其一:方法的多态---重载(overload)和重写(override),其二:对象的多态,对象的向上转型,对象的向下转型。方法的重载:发生在同一个类当中,方法名称相同,参数列表不同。经常看到的就是某一个类的构造...
java中的向上转型和向下转型问题。为什么一步到位的向下转型会报错,而...
所以转型没有问题 情况2: new AA() 中可能不包含BB类的全部变量和方法,强制转换无法实现 思考方法:JAVA中的变量名看成数据指针,new 是在内存中实际的创造一个实例。当创造了一个子类的实例时,指针类型是父类或子类都没有关系。但父类的实例不可能用子类的指针来表达。
在java 中,什么叫向上转型
其中f1前面的(Son)必须加上,进行强制转换。一、向上转型。通俗地讲即是将子类对象转为父类对象。此处父类对象可以是接口。1,向上转型中的方法调用。看下面代码:[java] view plaincopyprint?package com.wensefu.others;public class Animal { public void eat(){ System.out.println("animal eatting...
java对象向上转型时会丢失其原有的属性,向下转型时会不会丢失其原有的...
从来不曾丢失过,向上转型时仅仅是看不到了,不代表不存在了。还是可以通过 Java 反射访问它们的。向下转型后又还原成原来的可见性。你在 Eclipse 这种 IDE 中 debug 一下程序就能看到,虽然一个变量是父类型,但在 debug 的 variables 视图中它们依然显示成子类型。对象本身从来未曾变过。仅仅是可见性...
java达人进啊!!
结果就是输出man-say,如果你传入的参数是woman类,结果就是输出woman-say。这就是向上转型的一个例子,说明的是子类具有基类的所以接口,就是说可以使用基类的地方都可以用子类代替,而且得出子类的正确运行结果;反之就是向下转型,但是向下转型是不安全的,有可能是子类独有基类没有的 ...