动态绑定和多态

  • 动态绑定是指:"在执行程序期间(而非编译期间),判断引用所指对象的实际类型,调用其相应的方法。"
  • 动态绑定(多态)存在的条件
    1. 要有继承。
    2. 要有重写。
    3. 父类引用指向子类对象。
  • 当条件满足时,当调用父类里面重写的方法时,根据实际的对象来调用方法。
  • 例子
  1. class Animal
  2. {
  3. private String name;
  4. Animal(String name)
  5. {
  6. this.name = name;
  7. }
  8. public void enjoy()
  9. {
  10. System.out.println("叫声。。。。。");
  11. }
  12. }
  13. class Cat extends Animal
  14. {
  15. private String eyescolor;
  16. Cat(String name,String eyescolor)
  17. {
  18. super(name);
  19. this.eyescolor = eyescolor;
  20. }
  21. public void enjoy() //重写enjoy方法
  22. {
  23. System.out.println("猫叫声。。。。。");
  24. }
  25. }
  26. class Dog extends Animal
  27. {
  28. private String furcolor;
  29. Dog(String name,String furcolor)
  30. {
  31. super(name);
  32. this.furcolor = furcolor;
  33. }
  34. public void enjoy() //重写enjoy方法
  35. {
  36. System.out.println("狗叫声。。。。。");
  37. }
  38. }
  39. class Lady
  40. {
  41. private String name;
  42. private Animal pet;
  43. Lady(String name,Animal pet)
  44. {
  45. this.name = name;
  46. this.pet = pet;
  47. }
  48. public void myPetEnjoy()
  49. {
  50. pet.enjoy(); //调用时根据pet指向的实际类型来调用enjoy方法
  51. }
  52. }
  53. public class Main
  54. {
  55. public static void main(String args[])
  56. {
  57. Cat c = new Cat("catname","blue");
  58. Dog d = new Dog("dogname","black");
  59. Lady l1 = new Lady("l1",c);
  60. Lady l2 = new Lady("l2",d);
  61. l1.myPetEnjoy();
  62. l2.myPetEnjoy();
  63. }
  64. }
  65. 输出:
  66. 猫叫声。。。。。
  67. 狗叫声。。。。。

Java中方法的存储方式


  • Java中的方法储存在Code segment中,每个方法都有一个指向它的指针。

Java 动态绑定和多态的更多相关文章

  1. Java动态绑定与多态

    在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特性.多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来.在一开始接触多态这个词的时候,我们或许会因为这个词本身而感到困惑, ...

  2. Java——动态绑定和多态

    动态绑定是在执行期间(而不是编译期间)判断所用对象的实际类型,根据其实际的类型调用其相应的方法(确定选择哪个多态形式被调用). 首先是方法的参数是父类对象,传入子类对象是否可行 然后引出Parent ...

  3. java面向对象之 多态 Polymorphism

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

  4. Java 继承、多态与类的复用

    摘要: 本文结合Java的类的复用对面向对象两大特征继承和多态进行了全面的介绍. 首先,我们介绍了继承的实质和意义,并探讨了继承,组合和代理在类的复用方面的异同.紧接着,我们依据继承引入了多态.介绍了 ...

  5. Java类的多态机制

    Java中将一个方法调用同一个方法主体关联起来被称作绑定. 绑定分为前期绑定和后期绑定.前期绑定是在编译器决定的,而后期绑定是在程序运行时决定的.Java中除了static方法和final方法(pri ...

  6. Java基础之多态和泛型浅析

    Java基础之多态和泛型浅析 一.前言: 楼主看了许多资料后,算是对多态和泛型有了一些浅显的理解,这里做一简单总结 二.什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面 ...

  7. 通过实例聊聊Java中的多态

    Java中的多态允许父类指针指向子类实例.如:Father obj=new Child();  那么不禁要发问?? 使用这个父类型的指针访问类的属性或方法时,如果父类和子类都有这个名称的属性或方法,哪 ...

  8. 深度分析:理解Java中的多态机制,一篇直接帮你掌握!

    Java中的多态 1 多态是什么 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.用白话来说,就是多个对象调用同一 ...

  9. 13、java中的多态

    1,多态的体现 父类的引用指向了自己的子类对象. 父类的引用也可以接收自己的子类对象.2,多态的前提 必须是类与类之间有关系.要么继承,要么实现. 通常还有一个前提:存在覆盖. 3,多态的好处 多态的 ...

随机推荐

  1. javascript 时间倒计时效果

    <div id="divdown1"></div> <script language="javascript" type=&quo ...

  2. day 25 模块与包

    一.模块   模块就是一个包含了python定义和申明的文件,文件名就是模块的名字加上.py的后缀/ 模块的分类:     1.使用python编写的py文件     2.已被编译位共享库或者DLL或 ...

  3. python之内存与编码的那点事

    一.初始编码 ASCII 码不支持中文 是py2版本中的默认编码 ​Unicode 万国码, 英文使用16位(即两个字节​),中文使用32位(四个字节) ​utf-8 美国最少使用八位(1字节), 欧 ...

  4. 472. Concatenated Words

    class Solution { public: vector<string> res; vector<string> findAllConcatenatedWordsInAD ...

  5. #include stdio.h(B)

    #include <stdio.h> int main() { //***********一.循环语句*************** //什么叫做循环: //重复的做某件事情,重复的执行一 ...

  6. Python 入门(一)

    IDE 个人推荐  Pycharm : 比较好用,虽然没有中文,但是练练英语也不错,毕竟大同小异 基础语法 行与缩进 python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} . 缩进的 ...

  7. 成都Uber优步司机奖励政策(3月27日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. CLR via c#读书笔记九:接口

    1.接口对一组方法签名进行了统一命名.接口还能定义事件.无参属性和有参属性(C#的索引器). 2.c#禁止接口定义任何一种静态成员. 3.C#编译器要求将实现接口的方法标记为public.CLR要求将 ...

  9. L010 linux命令及基础手把手实战总结

    一转眼都快两周没更新了,最近实在太忙了,这两周的时间断断续续的把L010学完了,短短的15节课,确是把前10节的课程全部的运用一遍,从笔记到整理,再到重新理解,最后发布到微博,也确实提升了一些综合性能 ...

  10. 【二】H.264/MPEG-4 Part 10 White Paper 翻译之 Prediction of Intra Macroblocks

    翻译版权所有,转载请注明出处~ xzrch@2018.09.14 ------------------------------------------------------------------- ...