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. Flask扩展包之flask-admin

    入门 初始化 第一步是为Flask应用初始化一个空的管理界面: from flask import Flask from flask_admin import Admin app = Flask(__ ...

  2. sql server 2014安装后用sa登录问题

    在使用的sql server的数据的情况下,安装数据过程,未指定使用sa的登录,只能使用windows的账户登录,那要怎么设置账户来使用sa账户登录账号呢? 首先先打开的是sql server man ...

  3. react native配置ip真机测试

    首先保证真机和pc 保证在同一个网络下 根据红色错误判断自己是什么情况 例如 提示无法连接远程服务,说明你的不在同一网络下 提示500 可能配置的ip不对 设置ip方法 摇晃手机 ---> De ...

  4. python基本成分

    一.常量 常量即代表不变的量,其实在python里不存在真正不变的量,只不过潜规则在我们想定义一个常量的时候变量名为大写即为常量: 比如:一个人的年纪不断的增长,那么年纪就叫常量,如果这个人死了,那么 ...

  5. 【DSP开发】shared memory VS mailbox

    Hello, Hi everyone, I have a simple question. Could anyone explain to me the difference between Mail ...

  6. Synchronized及其实现原理(一)

    一.Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法.Synchronized的作用主要有三个:(1)确保线程互斥的访问同步 ...

  7. Linux系统基础知识整理(一)

    本文来自于: https://www.cnblogs.com/hafiz/p/6686187.html#4196989 一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰 ...

  8. [百度知道]ssm和ssh各自的优势

    https://zhidao.baidu.com/question/875108451824176892.html SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernat ...

  9. 小记---------手动执行脚本正常执行,使用crontab定时执行时 不执行

    可能出现的原因就是因为crontab不会从用户的/etc/profile文件中读取环境变量,所以就出现 使用定时crontab执行时 无法执行 抛错 所以在使用crontab 定时执行脚本时  在脚本 ...

  10. 删除项目中所有的__pycache__ 文件

    关于 pycache 当第一次运行 python 脚本时,解释器会将 *.py 脚本进行编译并保存到 __pycache__ 目录 下次执行脚本时,若解释器发现你的 *.py 脚本没有变更,便会跳过编 ...