龙生九子----多态(续转)

龙生九子
                  ----多态
作者:HolyFire
一龙生九子,子子皆不同。这个道理说的是世界上没有两个或两个以上的事物是完全相同的,事物之间有相同相似的一面,当然也有不同相异的一面。只有将不同的和相同的都考虑进来,才能完整的表达事物。
事物的属性有着不同的一面。我们知道人感知事物的一个途径是观察,用对不同光线的反应来识别物体,所以我们给出事物的一个属性,颜色。有时候一些物体的颜色是固定的,白色的云,蔚蓝的天空,碧绿的草地,不禁令人神游太虚。
但有些方面是不确定的,有一句话说道:“月有阴晴圆缺,人有悲欢离合”,这句话还不足以说明这个道理。我们中文里有时候会省略一些部分,“今天你吃了没有?”吃的是什么,“早饭”,“下午茶”,“面包”,不知道。这里将吃东西抽象化了,这句话可以在早上说,中午说,晚上说,任何一个适合的时间段都可以说。感兴趣的地方出现了,我们不知道吃什么东西,什么时候吃,但是却可以使用它,简要的表达一下你的问候。这样简单的设下伏笔,在具体需要的环境才用具体表现出来具体的用法,被广泛运用在生活中。“我砍!”表达了一个人要做的动作,具体砍什么,只有感兴趣的人才会去关注。“我生病了。”表达了一个人的状态,具体生的什么病,不是人人都想知道的。
多态--就是指事物不同的方面
多态是一种复杂的应用,要全面的阐述它很难,所以理解它的思想就成了重点。在不同情况下,秉承它的思想,用不同的方法实现多态。
还记得C++中的虚函数吗,我在《后入为主----虚函数》中讲过,虚函数可以动态改变,运用这个特性就能实现我们的目的了。不同的语言使用不同的方法,实现的机制就是一个类型提供的接口可以改变。这样就能体现不同这个思想了。
为了更好理解,我们用C++实现一个例子。
我们知道,要生活,就要工作,工作是人的社会行为,几乎人人都在工作。世界上有形形色色的人,人的工作的区分在什么地方呢,那就是它的职业,不同职业的人做不同的事。
学生的工作就是学习,司机的工作是开车,小贩的工作是卖商品,程序员的工作是编写代码。
现在我们分析一下,世界上有很多人,人都要工作
人 { 工作 = 未确定 }
学生的工作是学习
学生 { 人 , 工作 = 学习 }
司机的工作是开车
司机 { 人 , 工作 = 开车 }

时间: 2024-09-06 01:53:18

龙生九子----多态(续转)的相关文章

站长网播报:盗版高清门户遭查封续 PPS整合进爱奇艺

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 1. 锐观察:一万个地方网站App正在袭来 BAT一桩桩巨额收购战背景下,站长,曾经中国互联网草根创业者的代名词,正变成腐朽的代名词,连象征着"荣耀"的站长大会也要改名创业者大会,那么在移动互联网时代,站长们真的毫无作为吗? 在5月11日的站长大会上,我采访了不少为站长们开发网站工具的互联网公司,并特别关注了下午的新媒体论坛,忽然惊觉:一万个地方网站App正在奔腾而来.这背后则是地方网站转型的条件已经成熟,用中国传统的分析方法就是

C#多态小结——面向对象编程的三大机制之二

C#的多态性: 我的理解是:同一个操作,作用于不同的对象时,会有不同的结果,即同一个方法根据需要,作用于不同的对象时,会有不同的实现. C#的多态包括:接口多态,继承多态. 其中继承多态又包括通过虚拟方法实现的多态和通过抽象方法实现的多态性 例如:基类动物都有吃的方法,但是不同的动物吃的东西就会不一样,例如狼吃肉,羊吃草,这样"吃"的这个方法就要在派生类里面重新实现以下,运行时,通过指向基类的指针,来调用实现派生类中的方法. 接下来举例实现多态性. 1. 接口多态性 把动物"

Python编程之多态用法实例详解

  本文实例讲述了Python编程之多态用法.分享给大家供大家参考.具体分析如下: 什么是多态?顾名思义,多态就是多种表现形态的意思.它是一种机制.一种能力,而非某个关键字.它在类的继承中得以实现,在类的方法调用中得以体现.多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式. 我们先看一个简单的例子,运算符多态: ? 1 2 3 4 5 6 a=34 b=57 print(a+b) a="世界" b="你好" print(a+b) 我们不知

JAVA多态示例

1 class SuperClass 2 { 3 public void test() 4 { 5 System.out.println("SuperClass"); 6 } 7 } 8 class SubClass1 extends SuperClass 9 { 10 public void test() 11 { 12 System.out.println("SubClass1"); 13 } 14 } 15 class SubClass2 extends Su

新版续费、升级云服务器

  云服务器控制台支持包年包月计费的云服务器进行续费和升级操作. 如图,包年包月的云服务器列表的操作部分,包括续费(如蓝框线所示)和升级操作(如红框线所示). 点击"续费"后,出现续费页面.选择续费时长,并点击确定. 点击"升级"后,出现升级页面.选择要变更的CPU内存.新增的数据盘和带宽.确认金额后点击"确定".

javascript面向对象中多态和泛型的关系

在大家看到我的这篇文章时,我正在拜读刘未鹏先生写的<暗时间>,如果你有幸看到我的这篇博客,我希望你也可以看看这本书.好了闲话少叙,进入正题. 在面向对象的Collection中处处体现泛型和多态的思想,且慢,由于泛型和多态两者之间本身就有一定的相似性,让我们先认清楚泛型和多态之后再进入话题. 多态是面向对象最基本的概念之一,即要模糊父类和之类之间的区别,如何模糊呢?我们再来举网络上的那个例子: class Aninal{ 叫:}//叫是动物的一个方法 class 猫 extend Animal

网站建设为什么如此便宜 企业建站续警惕

很多人问到为什么有的网站制作要收几万元,甚至几十万元,可是很多网站建设公司的报价却很便宜,一千多块,甚至几百块,为什么一个网站有如此悬殊的报价,便宜的到底便宜在哪里?一般来说,网站要求的功能不同价格自然也不同,功能相对复杂的价格自然较高,功能简单的自然就低.然而同一类功能复杂程度的网站建设(如企业产品展示型网站)为什么有些公司报的价格那么便宜,到底便宜在哪里? 一.便宜在没有营销策划 专业的网站建设都是基于企业的营销战略的,只有了解企业所处的行业.客户使用习惯.竞争对手的情况才可以有针对性地规划

小心重写方法,正确实现多态

这是我今天在工作中碰到的问题,是关于继承和多态的.同事对项目中的一项基础功能进行了重构,可是当我们从CVS服务器上更新了项目源代码并编译了之后,发现这项功能已不能正常工作了.先撇开这个同事所犯的错误(对代码进行重构后没有测试他的新代码就上传到了CVS服务器上)不说,在这里我就说说这个问题所带出来的JAVA konwhow.由于我们的项目比较复杂,我在这里采取比较简单的例子来讲解这个问题.首先,我们有2个类:supper.TestSupper.java 和sub.TestSub.java.他们的代

漫谈C#编程中的多态与new关键字

编程|关键字 1. 你通常怎样用多态? 假设我有一个类,里面有一个 PrintStatus 方法,用于打印实例的当前状态,我希望该类的派生类都带有一个 PrintStatus 方法,并且这些方法都用于打印其实例的当前状态.那么我会这样表达我的愿望: // Code #01 class Base{ public virtual void PrintStatus() { Console.WriteLine("public virtual void PrintStatus() in Base"