【1.4 多态的应用以及注意事项】

  • 在多态中:父类指向子类对象时

    成员函数的特点:

    编译看左边 运行看右边

    在编译时期 参阅引用型变量所属的类中是否有调用的方法 如果有,编译通过;如果没有, 编译失败

    在运行时期 参阅对象所属的类中是否有调用的方法

    在堆内存中

    实例对象:子类包含父类 子类对父类说"你的就是我的 我的还是我的"

    成员方法 动态绑定(根据对象的实际类型确定执行哪个方法)

    成员变量的特点:

    编译看左边 运行看左边

    成员变量不具备多态性 通过引用变量来访问其包含的实例变量

    当父类 子类出现重名变量的时候 多态状态下看的是 父类

    因为在创建子类对象时 堆内存中其实是有两个变量的

    一个是父类的num 一个是子类的num

    你再拿父类的引用 去找num的时候 他就找到自己的了

    成员变量是静态绑定(只根据当前表示类型决定使用那个变量)

    成员变量(属性)不算重写 父类中已经有属性了 就不调用子类属性了

    静态成员函数

    编译看左边 运行看左边 静态绑定 绑定在方法所属的类上了

    总结:*****

    成员方法 编译看左边 运行看右边

    成员变量 编译看左边 运行看左边

    静态成员方法 编译看左边 运行看左边

    • package Day11;

      public class Test_05 {

      public static void main(String[] args) {

      MainBoard mb = new MainBoard();

      mb.run();

      // mb.useNetCard( );

      // mb.useSoundCard( );

      mb.useNetCard(new NetCard());//没必要创建引用了

      mb.useSoundCard(new soundCard());

      }

      }

      interface PCI {

      public void open();

      public void close();

      }

      class NetCard implements PCI {

      public void open() {

      System.out.println("启动网卡");

      }

      public void close() {

      System.out.println("关闭网卡");

      }

      }

      class soundCard implements PCI {

      public void open() {

      System.out.println("关闭声卡");

      }

      public void close() {

      System.out.println("关闭声卡");

      }

      }

      class MainBoard {

      public void run() {

      System.out.println("启动主板");

      }

      public void useNetCard(NetCard n) {//引用子类的方法

      n.open();

      n.close();

      }

      public void useSoundCard(soundCard n) {//引用

      n.open();

      n.close();

      }

      //接口型引用,指向自己的子类对象,接口不能创建对象,只能用子类

      public void usePCI(PCI p) {//PCI p= new NetCard()....

      if (p != null) {//如果有什么传入进来就显示什么

      p.open();

      p.close();

      }

      }

      }

Day11多态部分-6 【1.4 多态的应用以及注意事项】相关推荐

  1. 什么是Java多态?如何实现Java多态?

    java多态这个概念在同学们深入学习java的时候就会被提出,很多同学并不知道是什么意思,如何实现.今天小千就来给大家介绍一下什么是java多态和java如何实现多态. 什么是多态? 指允许不同类的对 ...

  2. C++ 面向对象(二)多态 : 虚函数、多态原理、抽象类、虚函数表、继承与虚函数表

    目录 多态 多态的概念 多态的构成条件 虚函数 虚函数的重写 协变(返回值不同) 析构函数的重写(函数名不同) final和override final override 重载, 重写, 重定义对比 ...

  3. c++ 多态 运行时多态和编译时多态_C++学习笔记之多态

    多态是面向对象三大特性之一 多态分为两类: 静态多态:函数重载 和 运算符重载 属于静态多态,复用函数名 动态多态:派生类 和 虚函数 实现运行时多态 静态多态和动态多态的区别: 静态多态的函数地址早 ...

  4. java 多态_Java基础深度总结:多态

    你我皆风华正茂,梦死方坠人生暮年 1.什么是多态 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪 ...

  5. 什么是多态?为什么要使用多态?什么时候用多态?多态是如何实现的?使用多态有什么好处?

      在学习<大话设计模式>的时候经常会遇到多态,但什么是多态?为什么要使用多态?什么时候用多态?多态是如何实现的?使用多态有什么好处?我们将根据以上五个问题展开激烈的讨论. 什么是多态? ...

  6. java三大特性之多态的认识,以及多态的实际应用(一)

    首先,什么是多态? 我们应该从什么角度来理解多态?其实,我们不妨把多态理解成一种事物的多种存在形态, 比如,猫和狗都属于动物的子类,可以想象成为动物,而动物又可以变成猫和狗. 多态是将子类对象当作__ ...

  7. java多态的概念_java中多态概念、实现原理详解

    一.什么是多态? 1.多态的定义 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用) 2.多态的作用 消除类型之间的耦合关系 3.多 ...

  8. java的多态的作品_Java的多态

    什么是多态? 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同 ...

  9. 解耦 多态性 java_Java的多态浅谈,Java多态浅谈网站安全分享!

    Java的多态浅谈概述Java的四大基本特性:抽象,封装,继承和多态.其中,抽象,封装,继承可以说多态的基础,而多态是封装,继承的具体表现.如果非要用专业术语来描述什么是多态的话 多态是指程序中定义的 ...

  10. python有多态特性吗_Python:多态、协议和鸭子类型

    多态 问起面向对象的三大特性,几乎每个人都能对答如流:封装.继承.多态.今天我们就要来说一说 Python 中的多态. 所谓多态:就是指一个类实例的相同方法在不同情形有不同表现形式.多态机制使具有不同 ...

最新文章

  1. Linux命令之乐--nmap
  2. 【Windows 逆向】内存地址分析 ( 内存条 | 虚拟内存 | 内存地址及寻址范围 | 内存地址与数据的关系 )
  3. 2021算法竞赛入门班第十节课【字符串】练习题
  4. 【震惊】史上最牛的市场推广/营销
  5. RPM   YUM
  6. c语言中怎么暂停一个一个游戏,求助:最近在linux下用c语言写了一个贪吃蛇程序,有几个问题,第一:贪吃蛇怎么实现暂停,第二:有时候同时输入上下左右中的两个键就会直接游戏结束...
  7. fopen如何保存西里尔文文件名_如何下载微信视频号的视频?
  8. django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)
  9. php ajax跨域cookies,解决ajax跨域请求数据cookie丢失问题
  10. 计算机应用为什么要学机械制图,简述机械制图学习的重要性
  11. 20190404-亥姆霍兹方程、表面等离极化激元
  12. 2-2 nginx整体结构
  13. zkui-master 安装过程(小道士随笔)
  14. Attack State Slight Movement(攻击状态)
  15. Java中文英文数字混合掩码_Java8 中文教程
  16. Android之UVC调试
  17. poi根据模板导出word(包含图片、动态生成表格、合并单元格)(亲测有效)
  18. 简单记账本-android版
  19. 删除win7资源管理器左侧家庭组/导航窗口的收藏夹、库、家庭组以及网络的方法
  20. XMind 8 安装与激活

热门文章

  1. python 中 pynlpir错误 Cannot Open Configure file pynlpir解决
  2. Git利用命令行提交代码完整步骤
  3. /dev/null 2>1 详解
  4. alter database open resetlogs
  5. UML类图与类的关系详解【转】
  6. Java集合框架总结(5)——Map接口的使用
  7. 不能使用缺陷数据作为绩效度量
  8. 告别.NET生成报表统计图的烦恼 (转)
  9. mac怎么用python2和3_Mac同时安装python2和python3
  10. pythonchar中的拟合方法_Python字符串魔法方法