精华内容
下载资源
问答
  • 多态 Java

    千次阅读 2019-04-20 19:37:42
    Java中: 同一个方法在不同的对象中体现出来不同的状态 内存中: 父类引用指向子类对象 多态实现的必要条件 1.存在继承关系 2.存在方法重写 3.父类引用指向子类对象 多态访问成员的特点 成员变量: 编译时期:看左边...

    什么是多态

    • 生活中: 同一个动作在不同环境下表现出来的不同状态
    • Java中: 同一个方法在不同的对象中体现出来不同的状态
    • 内存中: 父类引用指向子类对象

    多态实现的必要条件

    • 1.存在继承关系
    • 2.存在方法重写
    • 3.父类引用指向子类对象

    多态访问成员的特点

    成员变量:

    编译时期:看左边的类型,如果左边类型中没有变量,编译报错
    运行时期:看左边类型,左边类型的变量的值就是运行的结果
    
    编译看左边,执行看左边
    

    成员方法:

    编译看左边,执行看右边
    

    构造方法:

    多态访问子类构造方法会先访问父类构造方法
    帮助子类初始化父类继承过来的成员
    

    静态方法:

    编译看左边,执行看左边
    

    多态的优点和缺点

    多态的优点:

    1.简化了代码。
    2.提高了代码的可维护性和拓展性。
    3.消除类型之间的耦合关系等。
    

    多态的缺点:

    使用父类引用无法访问子类所特有的方法.
    

    多态缺点的解决方法:向下转型

    向下转型
    格式:<子类型> <引用变量名> = (<子类型> )<父类型的引用变量>;
    特点:父类转为子类,父类引用转为子类对象。理解为强制类型转换
    
    在向下转型的过程中,如果没有转换为真实子类类型,会出现类型转换异常
    

    与向下转型相对应的:向上转型

    向上转型
    格式:<父类型> <引用变量名> = new <子类型>();
    特点:子类转为父类  父类的引用指向子类对象。理解为自动进行类型转换
    
    此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法
    此时通过父类引用变量无法调用子类特有的属性和方法
    
    展开全文
  • 多态 JAVA

    2016-05-28 23:01:00
    多态Java) 一、多态 1、什么是多态? 不同的对象对于同一个操作,做出的响应不同 具有表现多种形态的能力的特征 2、使用多态的优点 : 为了实现统一调用 二、子类到父类的转换(向上转型) ① 将...

    多态(Java)

     

    一、多态

    1、什么是多态?

             不同的对象对于同一个操作,做出的响应不同

             具有表现多种形态的能力的特征

    2、使用多态的优点 :

            为了实现统一调用

     

    二、子类到父类的转换(向上转型)

    ① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换

    ② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法

    ③ 通过父类引用变量无法调用子类特有的方法

    三、java中两种实现和使用多态的方式

    ① 使用父类作为方法形参

    ② 使用父类作为方法返回值

    四、父类到子类的转换(向下转型)

    将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换

    五、instanceof运算符

    语法:

    对象 instanceof 类或接口

    该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false

    注:

    ① 使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误

    ② instanceof通常和强制类型转换结合使用

    转载于:https://www.cnblogs.com/ainiaiwo/p/5538592.html

    展开全文
  • 多态 java 1614787331

    2021-03-04 00:02:55
    多态 java 1614787331 生活中的多态 程序中的多态 多态中的方法覆盖 多态的应用 作为参数的情况 作为返回值的情况 装箱 向上转型 拆箱 向下转型 类型转换异常 判断类型 instanceof 总结

    多态 java 1614787331

    生活中的多态

    在这里插入图片描述

    在这里插入图片描述

    程序中的多态

    在这里插入图片描述

    多态中的方法覆盖

    在这里插入图片描述

    多态的应用

    在这里插入图片描述

    作为参数的情况
    在这里插入图片描述

    作为返回值的情况

    在这里插入图片描述

    装箱 向上转型

    在这里插入图片描述

    拆箱 向下转型

    在这里插入图片描述

    类型转换异常

    在这里插入图片描述

    判断类型 instanceof

    在这里插入图片描述

    总结

    在这里插入图片描述

    展开全文
  • 本篇文章给大家带来的内容是什么是java多态?java多态的使用,通过游戏中的一些功能带你掌握多态的使用。下面由动力节点java学院小编为大家一一介绍什么是java多态java多态的使用。希望对大家有帮助。为什么要使用...

    本篇文章给大家带来的内容是什么是java多态

    ?java多态的使用,通过游戏中的一些功能带你掌握多态的使用。下面由动力节点java学院小编为大家一一介绍什么是java多态及java多态的使用。希望对大家有帮助。

    为什么要使用多态

    在一款对战类游戏中(如有雷同纯属巧合),有两个不同的法师英雄:小乔、妲己。

    两个法师英雄的都有攻击的方法,小乔的攻击伤害为10,消耗魔法20。妲己的攻击伤害为15,消耗魔法30。玩家可以操作两个英雄进行攻击,下面看看实现的代码。

    父类-英雄:whyusepolymorphic.Hero.java

    9cae221dcfaf57d0dd90337801cca945.png

    子类-小乔:whyusepolymorphic.LittleJoe.java

    b877aacf29d1723c73a2bfe8288a56d1.png

    子类-妲己:whyusepolymorphic.Daji.java

    33a6426838583957e93eb41ac28970b6.png

    玩家:whyusepolymorphic.Player.java

    361a6136fc2dd9c18932b6fbc89f1ea2.png

    上面代码完整的实现了要求中的功能,那我们知道英雄不可能就这几个,后期如果添加新的魔法英雄,伤害不一样,怎么办?

    我们可以添加新的类,实现攻击的方法,修改玩家类添加操作英雄的方法。这个方式可以完成 Hero 扩展的需求,但是后面有更多的 Hero

    添加进来,我们维护起来就不是那么方便了。

    研究上面的代码我们发现,Player 类中的 play 方法的参数都是 Hero 类的子类,能否使用一个 play(Hero hero)

    方法操作所有的英雄?使用多态就能够实现这种优化设计。

    什么是多态

    简明扼要,多态就是多种形态。在自然界中碳的多态就有石墨、钻石等,剪这个动作就有剪纸、剪头发等。同一个操作,由于条件的不同,产生的结果也不同。

    那么在程序中的多态,就是指同一个引用类型,使用不同的实例而执行不同的操作(父类引用指定子类对象 Hero h=new Daji();)。

    如何实现多态

    实现多态的步骤:

    1.编写具有继承关系的父类和子类

    2.子类重写父类方法

    3.使用父类的引用指向子类的对象

    父类作为方法形参实现多态

    使用多态优化上面代码

    修改 Hero.java 添加攻击的方法

    0bc19169b4aea282781f7a5b5df27af5.png

    两个子类不用修改

    修改玩家类 Player.java 将 play方法的参数设为父类

    f63ed949e546f0aec7843534e50dc5bf.png

    修改测试类

    2cce9e686c96e87904d06c4634386ceb.png

    父类作为返回值实现多态

    玩家购买英雄使用多态实现,购买的方法有返回值,返回购买后的英雄,父类作为返回值实现这个功能。

    修改玩家类 Player.java 添加获取英雄的方法

    1d24666e10c0c850325ba83bb55e6bdc.png

    测试类

    437c42b4345c1b614b51910d0ed16b72.png

    父类到子类的转换

    如果子类中有一些子类特有的方法,父类引用不能调用子类的特有的方法。

    向 Daji.java 中添加一个方法 queenWorship

    64239c10ceea6b3367aee30a2e6a83ba.png

    向 LittleJoe.java 中添加一个方法 dazzlingStar

    7d6ab287c11e7626faf902918e48b01d.png

    在 Player.java 中添加 bigMove 方法

    23edcd5e850fa9e93ca9f7361cebbddc.png

    发现代码 hero.dazzlingStar(); 报错

    那么这个时候就需要将父类转换为子类(强制类型转换)

    c7f5345fd757e519bf16eb29d36cb38e.png

    但是直接这样写也会报错,用 instanceof 运算符可以保证不会转换错误

    语法:

    1c1b8f70026cdd366ff0986cf90cbea7.png

    instanceof通常和强制类型转换结合使用

    修改 Player.java 中的 bigMove 方法

    5a60a235eb23c9458b0823a22d51e7d0.png

    在 main 方法中编写测试代码

    c251f6ca902ab468e6c76492393d8d2c.png

    以上就是什么是java多态?java多态的使用的详细内容,希望能对大家的学习有所帮助。更多相关内容请关注动力节点java学院官网,每天会有精彩内容等你来看。

    以上内容相关免费视频教程下载:

    展开全文
  • 接口多态 java

    2021-03-18 14:34:22
    接口多态 java 编写一个动物类 定义一个子类 狗 定义一个能力 跑 定义一个能力 游泳 让狗具有游泳和跑的能力 测试类 把这个狗的类实例化 关注它自己所具有的方法 多态开始 动物类定义的变量指向狗对象 接口...
  • 但是,简单起了一些限制,我今天要谈的其中一个限制是:存储和检索多态Java对象。 让我们从一个简单的问题开始:过滤器的层次结构。 有一个抽象类AbstractFilter和两个子类RegexFilter和StringMatchFilter 。 ...
  • 展开全部多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实32313133353236313431303231363533e58685e5aeb931333366306538现方式即为多态。引用Charlie Calverts对多态的描述...
  • <p>java中 父类 与子类 堕胎问题! 多态指的是子类与父类重写的那部分代码,还是子类或者父类 之一被称为多态?</p>
  • 展开全部/*animal是个抽象方法,Cat和Dogextends这个就是用的多e68a843231313335323631343130323136353331333339663966态*/packageTest;publicclassTest{publicstaticvoidmain(String[]args){Feederfeeder=newFeeder...
  • java 多态_Java 多态

    2020-11-29 05:11:57
    Java多态,在之前的向上转型的文章中已经介绍了使用场景和为什么要通过向上转型实现运行时多态,请先看文章:张舰:Java 向上转型和向下转型这篇文章主要是总结一下Java多态的概念,具体的例子请参考向上转型那篇...
  • Java多态

    2021-01-19 16:02:14
    Java多态 Java多态 继承 重写 父类引用指向子类对象:此时父类引用只能调用父类有的方法,否则编译报错,虽然执行的实际方法仍然是子类的。
  • java函数多态_Java 多态

    2021-03-06 16:53:55
    Java多态,在之前的向上转型的文章中已经介绍了使用场景和为什么要通过向上转型实现运行时多态,请先看文章:张舰:Java 向上转型和向下转型这篇文章主要是总结一下Java多态的概念,具体的例子请参考向上转型那篇...
  • Java中多态性的实现什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息...
  • java 多态

    2020-05-19 13:43:02
    java 多态
  • 前两天已经相继介绍了Java面向对象的三大特性之中的封装、继承,所以今天就介绍Java面向对象的三大特性的最后一项,多态~首先讲一下什么是多态,以及多态需要注意的细节 什么是多态:一个对象具备多种形态,也可以...
  • 起先向单刀直入的解决 Java 泛型的相关概念...Java 的多态Java 的多态分为三种情况特殊多态(Ad hoc polymorphism),此类下又包含函数重载(function overloading)以及类型转换多态(coercion polymorphism)参数化多态(...
  • Java多态简介在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征。堕胎的作用是消除类型之间的耦合关系。多态简介多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据...
  • 多态,是Java中非常重要的一个部分,所以今天来谈一下多态(Polymorphism)。什么是多态不同类的对象对同一消息作出不同的响应就叫做多态。就像上课铃响了,上体育课的学生跑到操场上站好,上语文课的学生在教室里坐好...
  • 下面要给大家分享的是一个多态经典案例,一起来看看这个java多态简单例子吧。/*多态的好处:提高了代码的维护性和扩展性;弊端:父类不能使用子类的特有功能。要用子类的特有功能,可以:A:创建子类对象,调用方法...
  • 起先向单刀直入的解决 Java 泛型的相关概念和应用,发现有一些概念不是很理解,于是发现是被卡在“协变和逆变”的概念上了,接着看,终于发现根源是在 Java多态Java多态 Java多态分为三种情况 ...
  • 下面从虚拟机运行时的角度来简要介绍多态的实现原理,这里以Java虚拟机(Java Virtual Machine, JVM)规范的实现为例。在JVM执行Java字节码时,类型信息被存放在方法区中,通常为了优化对象调用方法的速度,方法区的...
  • Java多态详解

    2020-06-11 10:38:50
    Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便是Student,又是person 3.多态体现为父类引用变量可以指向子类对象 4.前提条件:必须有子父类关系 二....
  • Java中的多态性Java中的多态是一个概念,通过它我们可以以不同的方式执行单个操作。多态性源自两个希腊词:poly和morphs。单词“poly”表示很多,“morphs”表示形式。因此,多态性意味着多种形式。Java中有两种类型...
  • Java 多态多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,多态性是对象多种表现形式的体现。例如:可以把人分为男人和女人,男人有做力气活的能力,女人...
  • Java里的多态多态是同一个行为具有多个不同表现形式或形态的能力。在Java中,多态的表达式为Father f = new Son(),其中Father类为Son类的父类。f可以调用父类中的所有方法,当子类把父类中的方法重写之后,子类就会...
  • 原标题:Java基础————Java多态什么是多态呢?从字面上的意思去理解,就是多种形态,实际上呢,也就这么回事儿。Java多态有很多,我们直说一下,最常见的,方法的多态。首先,来一段范例程序: 从上面的程序,...
  • java多态

    2021-03-04 21:13:45
    java多态
  • java 多态函数_Java多态

    2021-02-25 20:12:27
    关于多态的一段代码public class test {public static void main(String[] args) {show(new Cat()); // 以 Cat 对象调用 show 方法show(new Dog()); // 以 Dog 对象调用 show 方法Animal a = new Cat(); // 向上转型...
  • public class Father { private String name="zhangSan"; private String age="17"; public String getName() { return name; } public void setName(String ...//15 } 多态是父类的引用指向之类的对象。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,237
精华内容 18,094
关键字:

多态java

java 订阅