Java多态使用方法是什么

技术Java多态使用方法是什么本篇内容介绍了“Java多态使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一

本文介绍了“什么是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

(1)

相关推荐

  • 电动车好学吗,大提琴好学还是中提琴好学

    技术电动车好学吗,大提琴好学还是中提琴好学我是学小提琴的电动车好学吗,我只想告诉楼主大提琴你上了高中开始学都来的及,中提琴难度和小提琴差不多,必须从小开始练琴,我们好多现在学中提琴的同学都是从小提琴转过来的,练大提琴的同

    生活 2021年10月22日
  • Tomcat的Session持久化策略是什么

    技术Tomcat的Session持久化策略是什么Tomcat的Session持久化策略是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。关于Tomcat的

    攻略 2021年12月8日
  • Python怎么实现两数相加

    技术Python怎么实现两数相加这篇文章主要讲解了“Python怎么实现两数相加”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么实现两数相加”吧!两数相加题

    攻略 2021年11月20日
  • 堡垒之夜怎么设置中文,堡垒之夜国际服怎么调中文

    技术堡垒之夜怎么设置中文,堡垒之夜国际服怎么调中文有些玩家表示自己玩国服的堡垒之夜完全没有声音。一部分玩家表示自己的后台声音设置里完全没有堡垒之夜的选项堡垒之夜怎么设置中文,而且有时候连堡垒之夜的声音设置的选项都是灰的。

    生活 2021年10月26日
  • 怎样进行Vue2移动端开发环境搭建

    技术怎样进行Vue2移动端开发环境搭建这期内容当中小编将会给大家带来有关怎样进行Vue2移动端开发环境搭建,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。这里给出基于 Vue2 的移动端

    攻略 2021年11月16日
  • Oracle GoldenGate配置参数生产端分析

    技术Oracle GoldenGate配置参数生产端分析这篇文章主要介绍“Oracle GoldenGate配置参数生产端分析”,在日常操作中,相信很多人在Oracle GoldenGate配置参数生产端分析问题上存在疑

    攻略 2021年11月15日