广告
返回顶部
首页 > 资讯 > 精选 >Java中多态的优势是什么
  • 615
分享到

Java中多态的优势是什么

2023-06-15 04:06:17 615人浏览 独家记忆
摘要

Java中多态的优势是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.向上转型。之前继承有提到过。父类引用指向子类对象。这时的引用只能调用子类覆盖重写了的方法,不能调

Java中多态的优势是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1.向上转型。

之前继承有提到过。父类引用指向子类对象。这时的引用只能调用子类覆盖重写了的方法,不能调用子类特有方法。自动转换

public class Main {public static void main(String[]args) {Father f = new Son();f.money();}}class Father{void money() {System.out.println("父类的钱");}}class Son extends Father{void money() {System.out.println("子类的钱");}void SonPlay() {System.out.println("爸爸我能打游戏吗?");}}

运行结果:

Java中多态的优势是什么

假如我要该引用区调用子类特有的方法(不是覆盖重写)呢? 会报错 (下面的向下转型就是解决这个问题)

Java中多态的优势是什么

下面举个例子

不同语言输出"HelloWorld"

(1)父类为正常类

public class Language{ //编程语言类void HelloWorld() { //输出HelloWorld}}
public class CLanguage extends Language{ //C语言类继承编程语言类void HelloWorld() { //输出HelloWorldSystem.out.println("printf(\"HelloWorld!\");");}}
public class JavaLanguage extends Language{ //Java继承编程语言类void HelloWorld(){System.out.println("System.out.println(\"HelloWorld!\")");}}

提供一个函数调用

public class Test {public static void main(String[]args) {//inputHelloWorld(new CLanguage());//inputHelloWorld(new JavaLanguage());//或者Language language;language = new CLanguage();inputHelloWorld(language);language = new JavaLanguage();inputHelloWorld(language);}public static void inputHelloWorld(Language language) {language.HelloWorld();}}

在不改变函数的形参(父类)下,实参(子类)的改变不会让程序报错。也就是说,我只需要关心的是函数的形参是与Language类相关的类(本身或者子类对象)就行,而无需考虑传入的实参到底是哪个子类对象。

运行结果:

Java中多态的优势是什么

假如父类是接口或者是抽象类呢?也可以

(2)父类为接口

假如父类真的就是为了提供某标准,或者父类无需实现内容等情况,可以考虑吧父类变成接口,接口也支持多态。

public class Test {public static void main(String[]args) { //inputHelloWorld(new CLanguage());//inputHelloWorld(new JavaLanguage());//或者Language language;language = new CLanguage();inputHelloWorld(language);language = new JavaLanguage();inputHelloWorld(language);}public static void inputHelloWorld(Language language) {language.HelloWorld();}} interface  Language{ //编程语言类public void HelloWorld() ; //输出HelloWorld}class CLanguage implements Language{ //C语言类继承编程语言类public  void HelloWorld() { //输出HelloWorldSystem.out.println("printf(\"HelloWorld!\");");}}class JavaLanguage implements Language{public  void HelloWorld(){System.out.println("System.out.println(\"HelloWorld!\")");}}

运行结果:

Java中多态的优势是什么

当然,抽象类作为父类也可以实现多态哦。

2.向下转型。

把父类引用指向子类对象的引用在强转为不同子类对象。 转完之后的对象可以调用子类特有方法

(解决上述的调用子类的特有方法会报错)

public class Main {public static void main(String[]args) {Father f = new Son();//f.money();Son s = (Son)f;s.SonPlay();}}class Father{void money() {System.out.println("父类的钱");}}class Son extends Father{void money() {System.out.println("子类的钱");}void SonPlay() {System.out.println("爸爸我能打游戏吗?");}}

运行结果:

Java中多态的优势是什么

在举上面的编程语言输出HelloWorld例子,假如我要求inputLanguage方法对于传入的实参中的子类对象进行判断,假如传入的对象是C语言类就输出新增的特有的方法,Java类也是一样

这里就有点像简单工厂模式(实参是啥我new啥)了,这里是实参是啥,我强转之后,我调用对应的方法。

public class CLanguage implements Language{ //C语言类继承编程语言类public  void HelloWorld() { //输出HelloWorldSystem.out.println("printf(\"HelloWorld!\");");}public void CReadMe() { //新增C语言子类特有方法System.out.println("我是C语言");}}
public class JavaLanguage implements Language{public  void HelloWorld(){System.out.println("System.out.println(\"HelloWorld!\")");}public void JavaReadMe() {//新增Java子类特有方法System.out.println("我是Java");}}

修改inputHelloWorld函数

public class Test {public static void main(String[]args) { //inputHelloWorld(new CLanguage());//inputHelloWorld(new JavaLanguage());//或者Language language;language = new CLanguage();inputHelloWorld(language);language = new JavaLanguage();inputHelloWorld(language);}public static void inputHelloWorld(Language language) {if(language instanceof CLanguage) { CLanguage clanguage = (CLanguage) language;clanguage.CReadMe();}else if(language instanceof JavaLanguage) {JavaLanguage javalanguage = (JavaLanguage)language;javalanguage.JavaReadMe();}        language.HelloWorld();}}

运行结果:

Java中多态的优势是什么

java基本数据类型有哪些

Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型。3、字符类型,字符类型的关键字是“char”。4、布尔类型,是表示逻辑值的基本数据类型。

关于Java中多态的优势是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: Java中多态的优势是什么

本文链接: https://www.lsjlt.com/news/277510.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中多态的优势是什么
    Java中多态的优势是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.向上转型。之前继承有提到过。父类引用指向子类对象。这时的引用只能调用子类覆盖重写了的方法,不能调...
    99+
    2023-06-15
  • java多态的优势是什么
    今天就跟大家聊聊有关java多态的优势是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、好处(1)类调用者对类的使用成本进一步降低。封装是让类的调用者不需要知道类的实现细节。多...
    99+
    2023-06-15
  • Golang中多态的优势和应用场景是什么?
    Golang中多态的优势和应用场景是什么?Golang是一门静态类型的编程语言,其具备强大的多态特性,通过接口的使用可以实现多态。多态是面向对象编程的重要特性之一,它允许不同类型的对象通过相同的接口进行操作,提高了代码的复用性和扩展性。在G...
    99+
    2023-12-29
    Golang 多态(Polymorphism) 优势(Advantages)
  • java多态是什么
    多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: (推荐学习:java课程)多态性是对象多种表现形式的体现。现实中,比如我们按下 F1 键这个动作:如果当前在 Flash 界面...
    99+
    2015-05-12
    java入门 java
  • java 多态是什么
    多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:多态性是对象多种表现形式的体现。现实中,比如我们按下 F1 键这个动作: ·如果当前在 Flash 界面下弹出的就是 AS 3 的...
    99+
    2020-09-04
    java入门 java 多态
  • 静态IP地址的优势是什么
    静态IP地址的优势是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。静态IP的特点是,在重拨上网后,得到的IP始终是固定不变的,它主要用于企业,其优点最主要在于:静电IP...
    99+
    2023-06-15
  • java中多态的原理是什么
    今天就跟大家聊聊有关java中多态的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2...
    99+
    2023-06-14
  • 多线服务器的优势和劣势是什么
    多线服务器的优势和劣势是:多线服务器的优势是可以自动切换到其他线路,不占用服务器系统资源,且自动备份,能实现高速访问网站;多线服务器的劣势是设备和带宽投入的成本大,且多线服务器资本都是共用的,会约束一些消耗系统资本大的功能。具体内容如下:多...
    99+
    2022-10-16
  • java的多态机制是什么
    Java多态的实现机制是父类或接口定义的引用变量可以指向子类或实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实现对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。本质上多态分...
    99+
    2015-01-09
    java教程 java 多态机制
  • java多态的概念是什么
    Java多态的概念是指子类对象可以以父类的类型进行引用和操作。多态性是面向对象编程的重要特性之一,它允许一个变量引用不同类型的对象,...
    99+
    2023-09-22
    java
  • java多态的作用是什么
    Java中的多态性是面向对象编程的一种重要特性,其作用如下:1. 提高代码的灵活性和可复用性:通过多态性,可以将不同类的对象视为同一...
    99+
    2023-08-23
    java
  • 动态代理IP功能的优势是什么
    这篇文章主要讲解了“动态代理IP功能的优势是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“动态代理IP功能的优势是什么”吧!动态IP是指必要时分配IP地址的方式。动态是指每次上网,电信都...
    99+
    2023-06-20
  • java使用泛型的优势是什么
    这篇文章主要介绍“java使用泛型的优势是什么”,在日常操作中,相信很多人在java使用泛型的优势是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java使用泛型的优势是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • java中实现多态的原理是什么
    什么是多态?多态就是指一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上...
    99+
    2020-11-11
    java 实现 多态 原理
  • java多态机制是什么
    java多态机制是什么java中实现多态的机制是依靠父类或接口的引用指向子类。从而实现了一个对象多种形态的特性。其中父类的引用是在程序运行时动态的指向具体的实例,调用该引用的方法时,不是根据引用变量的类型中定义的方法来运行,而是根据具体的实...
    99+
    2020-02-04
    java入门 java 多态机制
  • 分布式系统中Java语言的优势和劣势是什么?
    随着互联网的迅猛发展,分布式系统的应用越来越广泛。Java作为一种广泛使用的编程语言,也在分布式系统中发挥着重要的作用。本文将探讨Java在分布式系统中的优势和劣势,并通过演示代码来具体说明。 一、Java语言在分布式系统中的优势 跨平...
    99+
    2023-10-09
    分布式 关键字 numy
  • golang的优势是什么
    本文小编为大家详细介绍“golang的优势是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang的优势是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。golang的优势:1、学习曲线容易;2、开发...
    99+
    2023-07-04
  • HTML5的优势是什么
    本篇内容主要讲解“HTML5的优势是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5的优势是什么”吧!   HTML5优势:   1、基于HTM...
    99+
    2022-10-19
  • cdn的优势是什么
    这篇文章主要讲解了“cdn的优势是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“cdn的优势是什么”吧! cdn优势是什么我们要想弄明白这个问题,首先要了解cdn的含义,所谓的...
    99+
    2023-06-07
  • java多态实现的原理是什么
    Java多态的实现原理是通过方法的重写和方法的动态绑定实现的。多态是指同一个方法在不同的对象上可以有不同的表现形式。在Java中,一...
    99+
    2023-09-22
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作