在现实世界中,同一事物可以有很多种不同的状态,比如水有固态,气态,和液态;但它们都继承了水的特性,它们的分子结构也是一样的,物理特性和化学特性也是一样的。

在代码中多态表现在类与类之间的关系,水是一个类,液态水是一个类,冰是一个类,水蒸气是一个类,但他们都来源于水。继承了水的特性,并且都属于水。同样,Java的面向对象不仅表现在事物的状态方面和事物的特征方面,更表现在事物的关系方面。现实中事物与事物之间的关系很复杂,而这些关系表现在他们所拥有的共同特征,这些共同特征被抽离出来,有一个特有的名称,比如在生物界从大范围到小范围依次分为界、物、门、纲、目、科、属、种、类,生物界,比如说人在生物界中就属于:脊椎动物门,哺乳纲,真兽下纲,灵长目,猿科,猴属,猴种,人类。在代码中表述一个人,一个人一个对象,这些对象基于同一个类创建,拥有这个类的共同属性和方法,比如生物界中人类的方法,人类的共同属性有名字,性别,爱好等等;人类的共有方法有繁殖后代,呼吸,有独立意识,会思考,等等;在代码中体现在如:

abstract class Animal{
   String name;
   String color;
   public Animal(){
  
   }
   public Animal(String name,String color){
         this.name=name;
   this.color=color;
   }
   public  abstract void eat();/*{//方法的主体指的是大括号的内容
            System.out.println("动物要吃饭");  
   }*/
   public void sleep(){
            System.out.println("动物在睡觉");
    }
}
class Dog extends Animal{
 public Dog(String name,String color){
           super(name,color);
 }
 //狗需要啃骨头
 public void eat(){
     System.out.println("狗在啃骨头");
 }
}
class Cat extends Animal{
 public Cat(String name,String color){
           super(name,color);
 }
 public  void eat(){
       System.out.println("猫在吃鱼");
 }
}
class AnimalTest {
 public static void main(String[] args){
        Dog dog=new Dog("送来","黄色");
        Cat cat=new Cat("杰斯","黑白色");
        dog.eat();
        cat.eat();
 }
}
Animal是一个总结性的类,概括了基于他所有对象的所有共同特征和方法;
而Dog,Cat则是Animal的子类,对Animal中的方法和属性呈现具体表现,让接触他的人能够直观的分辨出不同对象之间的独有特征,从而准确找到想要查找的对象。
       多态的格式就是数据类型是父类,在生物界中的表现就是首先他是个人,那么人所有的特征先想好,再按照人类拥有的特征来创造人的具体对象。在代码中的表现就是
       Animal 对象名 =new Dog();

因为多态表现的是同一事物的不同状态,所以多态多表现在双方之间存在继承关系的类之间。在现实生活中,一件事物在不同条件下会呈现出不同的状态,但无论呈现出何种状态,他都是基于水都是,属于水这种类型,却又有自己的名字,所以在取水蒸气的时候既可以直接取蒸气,又可以取水。在代码中也是一样,用父类类型来表示子类的数据类型,再添上子类特有的属性和方法,或者什么都不添加,这就算是多态的表现!

我也就描述一下多态,还是自己的理解,不知道对不对,如有不当之处,还请各位博友斧正!

虚拟中的多态与现实中多态相关推荐

  1. C++中的封装、继承、多态

    封装(encapsulation):就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的 ...

  2. JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例...

    JAVA之旅(八)--多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例 一.多态 我们今天又要学习一个新的概念了,就是多态,它是面向对象的第三个特征,何谓多态 ...

  3. java封装继承多态语法,GO语言中封装,继承,和多态

    ##封装 go中的封装和java的不太一样,在go里面是没有java中的class,不过可以把struct看成一个类,封装可以简单地看作对struct的封装,如下 type obj1 struct { ...

  4. rails 两表关联查询_Rails中的单表继承与多态关联:找到适合您的方法

    rails 两表关联查询 by Haley Mnatzaganian 通过海利·姆纳扎卡尼安 Rails中的单表继承与多态关联:找到适合您的方法 (Single-table inheritance v ...

  5. 慕课网-C++远征之多态篇(中)-学习笔记

    c++远征之多态篇 纯虚函数 & 抽象类 例子: class Shape { public:virtual double calcArea()//虚函数{return 0;}virtual d ...

  6. java中的多态性_[转载] c++多态与java多态性_Java中的多态性

    参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...

  7. 万字总结,一文带你秒懂Java中的封装、继承和多态(有代码 有示例)

    Java中的封装.继承和多态 前言 一.面向对象有什么优势? 二.面向对象的三大特性! 1.封装 1.1访问限定符 1.2关于包的导入 1.2封装 2.继承 2.1继承的语法 2.2父类成员访问 3. ...

  8. 什么是多态,JAVA 中多态的实现机制

    什么是多态,JAVA 中多态的实现机制 首先声明啊,这里的多态不是生物学和物理学上的多态性,这个是指编程语言中的多态. 官方说明: 多态(英语:polymorphism)指为不同数据类型的实体提供统一 ...

  9. python中的继承有什么特点_Python中 什么是面向对象-继承和多态

    文字有点长,对于不想看文字的朋友,可以去这里看视频,内容和这个文字一样的,视频可能更好理解 https://www.piqizhu.com/v/zaX9K4pd4GE 上一篇文章<python教 ...

最新文章

  1. 自动驾驶行业内时间表和技术解析
  2. 命名实体识别NER 如何使用BERT实现
  3. SDWebImage的使用及图片不改变问题的解决
  4. Puppet集中配置管理系统[安装与配置]
  5. linux之杀死某个应用或命令的一行终极命令
  6. 数据结构之并查集:UF-Tree优化并查集——19
  7. pandas读取xlsx文件,编码问题
  8. ARM处理器寄存器和汇编指令系统
  9. Java进阶:SpringMVC中放行静态资源
  10. 华夏基金:养老是基金业下一个20年最大风口
  11. windows pe安装系统
  12. java商城加入购物车接口实现_商城系统购物车功能分析实现
  13. android模拟器 vt,逍遥安卓模拟器怎么开启VT模式 VT虚拟化设置方法
  14. python拼多多推广多店爬虫
  15. iFunk执政官游戏本,不仅仅是游戏本
  16. K、KB、M、MB、G、GB 、TB
  17. 想学设计?这6款设计软件不能不知道
  18. 团队RESTful 风格API规范
  19. 大数据架构中的流式架构和Kappa架构
  20. 聚焦品牌化 Morketing2018第二届跨境出口电商营销峰会成功举办

热门文章

  1. PDF办公技巧之PDF怎么删除其中一页
  2. 下载c语言软件后怎么解压,手机怎么解压文件 盘点常用手机压缩打包解压文件应用...
  3. 【OpenCV】⚠️高手勿入! 半小时学会基本操作 15⚠️ 对象测量
  4. 幸福三月丨盐城北大青鸟女神节快乐!
  5. 基于STM32的ESP8266天气时钟(2)--------MCU获取天气数据
  6. 引流产品用哪些比较合适?什么样的产品适合做引流?
  7. win10开机显示无网络连接服务器,Win10开机无法连接网络
  8. 一名3年工作经验的程序员应该具备的技能 !
  9. requests模块下
  10. 17.11.25B组总结