5 多态

5.1多态:polymorphism概念

定义:某一类事物的多种存在形态
表现形式:父类变量指向子类实例
  例:动物中猫,狗
  猫这个对象对应的类型是猫类型
  猫 x = new 猫();
  同时猫也是动物中的一种,也可以把猫称为动物
  动物 y = new 猫();
  动物是猫和狗具体事物中抽取出来的父类型
  站在父类的角度看子类对象,看不到子类特有的属性和方法

相同的的方法会被重写,变量没有重写之说。如果子类声明了父类一样的变量,那意味着子类中将有两个相同名称的变量!

5.2多态的作用和前提

5.2.1多态的前提:

1.需要存在继承或者实现关系
2.要有覆盖操作(子类对父类方法重写)
3.父类类型变量指向子类实例

5.2.2程序中体现::

父类或者接口的变量指向子类(实现类)对象
子类对象的类决定方法的调用

5.2.2多态的前提:

多态的存在提高了程序的扩展性和后期可维护性

  note:编译类型和运行时类型(引用数据类型)

5.3多态的特点

  • 成员方法:有

    编译时:要查看引用变量所属的类中是否有所调用的成员
    在运行时:要查看对象所属的类中是否有所调用的方法

  • 成员变量:无

    只是编译类型所指向的成员变量
    即:成员变量没有多态性

  • 静态成员方法:无

    没有多态性

  

5.4对比于类型转换

向上转型:相当于基本数据类型的隐式转换;
向下转型:类似于强制转换

5.5

java面向对象4-多态的更多相关文章

  1. Java面向对象之多态(来源于身边的案例)

    2019年1月3日 星期四 Java面向对象之多态(来源于身边的案例) 1. 为什么要用多态? 1.1 多态是面向对象的三大特性之一 1.2 多态是基于接口设计的模型 1.3 多态具有横向扩展特性 1 ...

  2. Java面向对象的多态

    Java中多态的概念是面向对象中除封装和继承外非常重要的知识点,也是Java面向对象三大特性最后一个特性 多态其实就是指对象存在的多种形态,多态分为引用多态和方法多态 引用多态的含义就是:父类的引用可 ...

  3. java面向对象之 多态 Polymorphism

    多态(Polymorphism):用我们通俗易懂的话来说就是子类就是父类(猫是动物,学生也是人),因此多态的意思就是:父类型的引用可以指向子类的对象. 1.多态的含义:一种类型,呈现出多种状态 主要讨 ...

  4. Java面向对象特性--多态

    Java是一种面向对象的编程语言,面向对象的三大特性就是继承,封装,多态.下面细细说一说多态. 多态的定义:一个事物的多种形态,指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而 ...

  5. JavaSE入门学习18:Java面向对象之多态

    一Java多态 多态是同一个行为具有多个不同表现形式或形态的能力. 多态性是对象多种表现形式的体现.比方我们说"宠 物"这个对象.它就有非常多不同的表达或实现,比方有小猫.小狗.蜥 ...

  6. Java 面向对象_多态

    多态图解 代码中体现多态性 父类名称 对象名 = new 子类名称(); or 接口名称 对象名 = new 实现类名称(); // 父类 public class Father { public v ...

  7. 对Java面向对象中多态的理解

    理解的要点:多态意味着父亲的变量可以指向子类对象 面向对象程序设计的三大支柱是封装.继承和多态 封装对外把相应的属性和方法实现的细节进行了隐藏.继承关系使一个子类继承父亲的特征,并且加上了一些新的特征 ...

  8. Java面向对象11——多态

    多态  package oop.demon01.demon06; ​ public class Application {     public static void main(String[] a ...

  9. Java面向对象:多态

    多态:具有表现多种形态的能力的特征(同一个实现接口,使用不同的实例而执行不同的操作) 实现多态的优点:为了方便统一调用! 实现多态的三种方式! 1:子类到父类的转换: 例: 1 Dog dog=new ...

  10. Java面向对象之多态

    多态:具有表现多种形态的能力的特征(同一个实现接口,使用不同的实例而执行不同的操作) 实现多态的优点:为了方便统一调用! 实现多态的三种方式! 1:子类到父类的转换: 例: Dog dog=new D ...

随机推荐

  1. SAS中的聚类分析方法总结

    SAS中的聚类分析方法总结 说起聚类分析,相信很多人并不陌生.这篇原创博客我想简单说一下我所理解的聚类分析,欢迎各位高手不吝赐教和拍砖. 按照正常的思路,我大概会说如下几个问题: 1.     什么是 ...

  2. C# 获取当前活动网络连接mac地址

    IPAddress localIp = null; IPAddress[] ipArray; ipArray = Dns.GetHostAddresses(Dns.GetHostName()); lo ...

  3. AWSome Day简介

    AWSome Day是什么? 它是一场为时一天.结合教育与技术新知的云计算技术免费研讨会.是面向所有开发人员.IT技术人员.或技术/业务领域决策者必备的基础云计算课程.AWS专业级讲师将在现场带领您从 ...

  4. python学习之面向对象(二)

    6.2 类的空间角度研究类 6.2.1 添加对象属性 [总结]对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加. class A: address = '召唤师峡谷' ...

  5. hadop-eclipse-plugin导入plugins后没有mapreduce视图

    这种现象一般由于安装在eclipse\plugins下的插件没有导入的问题. 解决方法:把 eclipse\configuration\org.eclipse.update 删除掉.出现这种情况的原因 ...

  6. [JS] 文本框判断输入的内容是否为数字

    可以通过触发文本框的onchange事件来对输入的内容进行判断是否为数字 文本框的属性设置: 把onchange的属性对应的js函数写好即可 参数传输的是当前控件的value值,即text值 < ...

  7. Confluence6.9配置邮件服务器

    一.调整confluence服务 1.在confluence安装目录下的server.xml中加一段邮件服务器的配置,加在confluence的Context中 <Context path=&q ...

  8. for (;;) 与 while (true),哪个更快?

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 在 JDK8u 的 jdk 项目下做个很粗略的搜索: mymbp:/Users/me/workspace/jdk8u/jdk ...

  9. 【五一qbxt】test2

    又犯了一些迷之错误??要不然yy鼠标就是我的了 1.Superman: 小姐姐的题解:直接用set模拟即可emmmm 里面有很多指针啊,乱七八糟的,不会qwq,先看看我的大模拟吧: #include& ...

  10. queue的常见用法

    queue的使用 queue是什么? queue是一种先入先出的容器 queue的定义 引入 # include <iostream> # include <queue> us ...