本文介绍了“什么是Java多态使用方法”的知识。很多人在实际案件操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!
一 点睛
向上转型:或过渡到父类。通过子类的对象实例化父类的对象实际上是对象的向上转换。Upcast不需要强制类型转换,但会失去精度。
向下转型:或过渡到子类。也就是说,父类对象可以转换为子类对象,但此时必须执行强制类型转换。
向上转换时,父类对象可以看到的方法仍然是这个类中定义的方法(即子类覆盖的方法)。如果子类扩展了一些新方法,父类是不可见的。
二 父类对象找不到子类的扩充方法
1代码
class { public void print(){ system . out . println(' * * * *-父类base class:public void print(){ }({ } ');}} Classsubclass Extensions基类{ public void print()//方法重写{ system . out . println(' # # # #-# # #-subclass:public void print(){ } ');} public void getB() //这个方法是子类{ system }扩展的函数。out . println(' # # # #-子类:public void getb () {},B类扩展方法。) ;} }公共类new method test { public static void main(String args[]){ base class baseObj=new subClass();//实例化子类对象BaseObj . print();baseObj . GetB();//找不到此方法的父类}}
2次运行
编译失败。
3描述
虽然父类对象baseObj的实例化依赖于子类,但它能看到的是自己的类定义的方法名。如果方法被子类覆盖,被调用的方法体也是被子类覆盖的方法。
三 向下转型
1代码
class { public void print(){ system . out . println(' * * * *-父类base class:public void print(){ }({ } ');}} Classsubclass Extensions基类{ public void print()//方法重写{ system . out . println(' # # # #-# # #-subClass:print()');} public void getB() //这个方法是由子类{ system }扩展的函数。out . println(' # # # #-Subject:GetB(),Subject扩展方法。) ;} } public class downlasttest { public static void main(String args[]){ base class baseObj=new subClass();//实例化子类对象BaseObj . print();//调用print()subClass Subobj=(subClass)subClass的baseobj//向下过渡,强制完成subobj . getb();//找不到此方法的父类,但可以找到子类对象}}
2次运行
# # # #-subclass:print()# # #-subClass:GetB(),subClass扩展方法。
3描述
形式上,类定义的对象只能看到它所属的类的成员。虽然子类对象可以通过向上类型转换给父类对象赋值,但是父类对象只能看到子类中覆盖的成员(这些方法也已经在父类中定义了),父类对象看不到子类的新扩展方法。
四 隐藏
1电竞
在某些场景下,我们不希望父类的方法被子类的方法覆盖,也就是子类实例化后,会调用父类的方法,而不是子类的方法,需要隐藏。关键字Static修改的静态方法无法覆盖,Java利用这个特性来达到隐藏效果。
2代码
父类{ public static void overwriting(){ system . out . println(# # # # #-父方法');}}class Son扩展了父辈{ public static void overwriting(){ system . out . println(' * * * *-Son方法');} } public class hideSubscription { public static void main(String args[]){父辈爸爸=新儿子();dad . overwriting();父. overwriting();son . overwriting();}}
3运行
##### -父法##### -父法***** -子法
“如何使用Java多态性”内容到此结束。感谢您的阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/105116.html