猿问

请大神帮我解答一下向上造型!

 A a= new B(); A是父类,B是子类。这就是一个声明了a的A类引用数据类型指向了new一个的B类对象。 

 他的意义是什么呢,是把B属性和方法赋予A了。还是把A的赋予B了呢? 


爱技术的Wade粉儿
浏览 2270回答 7
7回答

rookie2maven

只是将子类对象声明为父类类型,就跟你跟你父亲姓一样,在面向接口编程就会看到它的好处。

qq_灰色边界_0

这不是属性赋予,而是将子类对象当作父类对象使用,是java多态的示例。该实例可以调用父类中的所有方法,却不能调用子类特有的方法。

HansonQ

这个应该是多态性的概念 记住一句话就好了 父类的引用a指向了子类B。

weibo_慕容2566259

一个是编译时的类型,一个是执行时的类型,通过这种方法实现了多态

Xx_0000_xX

这句代码的意思是用子类(B)来实例化父类对象(a),是JAVA的多态性,没有赋予不赋予的情况,就是一个对象的实例化

了不了之

这个问题是面向对象程序设计中的多态性, 在父类A与子类B之间, 如果对B并没有特别的要求, 所要用到的B类的方法都是从A类继承重写过来的, 我们就可以把B类的一个实例C向上转型看做A类的一个实例, 你学过继承应该知道, 继承关系可以说是"是一个"的关系, 而面向对象编程在编译的时候是只对方法的参数和返回值进行检查的, 而并不确定执行的确切代码,被调用的代码只有在运行期才确定, 此时的实例C虽然是父类A的实例, 调用的方法确实他本身B类里的重写方法,因而,当不同的实例被调用相同的方法, 都会执行他本身重写的方法, 给予不同的响应, 这就是向上转型;

一条小咸鱼

多态性
随时随地看视频慕课网APP

相关分类

Java
我要回答