一、多态的分类
对象的多态性:动物 x = new 猫();
函数的多态性:函数重载、重写

二、多态的体现
父类的引用指向了自己的子类对象
父类的引用也可以接收自己的对象

三、多态的前提
必须是类与类之间只有关系,要么继承或实现
通常还有一个前提,存在覆盖

四、多态的好处
多态的出现大大的提高了程序的扩展性

五、多态的弊端
只能使用父类的引用访问父类的成员

六、代码示例

  1. abstract class Animal
  2. {
  3. abstract void eat();
  4. }
  5. class Cat extends Animal
  6. {
  7. public void eat()
  8. {
  9. System.out.println("吃鱼");
  10. }
  11. public void catchMouse()
  12. {
  13. System.out.println("抓老鼠");
  14. }
  15. }
  16. class Dog extends Animal
  17. {
  18. public void eat()
  19. {
  20. System.out.println("吃骨头");
  21. }
  22. public void kanJia()
  23. {
  24. System.out.println("看家");
  25. }
  26. }
  27. class DuoTaiDemo
  28. {
  29. public static void main(String[] args)
  30. {
  31. function(new Cat());
  32. function(new Dog());
  33. Animal a = new Cat();//向上转型
  34. a.eat();
  35. Cat c = (Cat)a;//向下转型
  36. c.catchMouse();
  37. }
  38. public static void function(Animal a)
  39. {
  40. a.eat();
  41. //用于子类型有限
  42. //或判断所属类型进而使用其特有方法
  43. if(a instanceof Cat)
  44. {
  45. Cat c = (Cat)a;
  46. c.catchMouse();
  47. }
  48. else if(a instanceof Dog)
  49. {
  50. Dog c = (Dog)a;
  51. c.kanJia();
  52. }
  53. }
  54. }

运行结果:

Java笔记6:多态的更多相关文章

  1. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  2. Java 继承和多态

                                                        Java  继承和多态 Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因 ...

  3. Effective Java笔记一 创建和销毁对象

    Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...

  4. 13、java中的多态

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

  5. java笔记00-目录

    --2013年7月26日17:49:59 学习java已久,趁最近有空,写一个总结: java笔记01-反射:

  6. java中实现多态的机制是什么?

    多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性.在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度:今天我们再次 ...

  7. java面向对象之 多态 Polymorphism

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

  8. java异常处理、多态

    第一:GC是什么? 为什么要有GC?  第二:垃圾回收的优点和原理.并考虑2种回收机制.  第三:垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?  第 ...

  9. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  10. SQL反模式学习笔记7 多态关联

    目标:引用多个父表 反模式:使用多用途外键.这种设计也叫做多态关联,或者杂乱关联. 多态关联和EAV有着相似的特征:元数据对象的名字是存储在字符串中的. 在多态关联中,父表的名字是存储在Issue_T ...

随机推荐

  1. Hadoop简单源码样例

    1.WordCount策略比较简单 import java.io.IOException; import java.util.StringTokenizer; import org.apache.ha ...

  2. 使用go写一个检测tcpudp状态的包

    使用go写一个检测tcpudp状态的包 http://www.2cto.com/os/201501/367596.html

  3. suse更改root密码

    http://blog.csdn.net/george188/article/details/5383013 在SUSE Linux环境下,进入单用户模式仍然需要密码,因此通过进单用户模式恢复root ...

  4. Docker背后的内核知识:命名空间资源隔离---亲测

    参考URL: https://linux.cn/article-5057-1.html 实现代码(网络和用户空间只是看懂了) 实际上,Linux内核实现namespace的主要目的就是为了实现轻量级虚 ...

  5. Workman websocket 握手连接

    默认的是TCP连接方式,如果需要WebSocket,则需要更改Gateway方式, 服务端协议要和客户端协议一致才能通讯.客户端是websocket协议,服务端也要设置成websocket协议.默认为 ...

  6. PHP无限极分类详谈

    当你学习php无限极分类的时候,大家都觉得一个字“难”我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究. 到网上一搜php无限极分类,很多,但好多都是一个,并且,写的很乱,代码 ...

  7. MySQL 一般模糊查询的几种用法

    1.%:表示零个或多个字符.在某些情况下需要中文查询,一般用两个%来查询,即%%: select * from user where name like %五%; -->表示:查询user表中的 ...

  8. 51nod 1137 矩阵乘法【矩阵】

    1137 矩阵乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出2个N * N的矩阵M1和M2,输出2个矩阵相乘后的结果.   Input 第1行 ...

  9. 哦这。。!C语言scanf输入的坑爹之处

    一. 今天闲来无事,跑去A题,本想3sA了poj1004,结果搞了10分钟,最令人困惑的问题就是为什么定义了double类型的变量,但是用scanf输入的时候标识符用%f的话,输入并不能完成,也就是说 ...

  10. 福州三中集训day1

    第一天感觉很是不友好,好在我是学过搜索之后才听的课,不然估计得死在教室…. 某zld犇犇讲的很是强?今天主要是讲枚举和DFS,几道经典题目讲完,还没到下课时间, 然后讲起了float. 有空整理一下吧 ...