Java——对象多态性

  1. 向上转型
    引用所能够调用的方法取决于引用的类型,而如何具体的实现该方法取决于对象的类型。

定义了父类为A类,子类为B类,子类B覆盖了父类的fun1()方法,添加了自己的fun3()类,这是一个对象向上转型的关系,但是A类型的引用a虽然可以调用fun1()方法,但是不能通过A类引用a调用子类对象独有的fun3()方法!!!

引用a为A类型,所以通过引用a只能调用A类型中包含的方法( fun1()和fun2()),而不能调用B类中的fun3()。也就是说A类引用只能向指向的对象发送A类中包含的方法,具体的实现由指向的对象的类型来决定。

  1. 向下转型
    在对象进行向下转型时,必须首先发生对象向上转型,否则将出现对象转换异常。

A类型引用指向的是一个A类对象,把A类引用转换成B类引用,此时就可以发送调用B类方法的命令给指向的对象,而指向的对象为A类对象却并不含B类中非共有的方法,对象根本就没有实现这个方法,怎么去执行方法呢?因此就会产生错误。

A a=new B();						//是可以的

`A a = new A(); 					//是不可以的
发布了11 篇原创文章 · 获赞 0 · 访问量 169

猜你喜欢

转载自blog.csdn.net/qq_43117978/article/details/105326945