预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

继承与多态 接下来为大家介绍多态(polymorphism)。在面向对象编程当中呢,多态是非常重要的特性之一。当几个子类继承同一个父类的时候,通过覆盖,子类们可以展现不同的特性。继承与多态就像生物界当中的遗传和变异一样,继承使子类与父类保持着诸多的联系和相似性,而多态呢则使继承自同一个父类的子类实现个体的差异化,当然这一个差异化也是有限的,并不是跨类的。比如说熊猫的父亲不可能是一只鸭子。 来看一个具体的例子,比如说我们现在有一个父类叫Pet(宠物),这个Pet类本身也是非常地简单,它有一个自己的方法action,action呢直接追踪出一句字符串“dosomething”。 然后我们建立Pet类的3个子类,它们都将用自己的方法来覆盖这个父类的方法action。第一个呢,我们建一个Dog类(小狗),它继承自Pet,同时他要覆盖掉action这个方法,让小狗输出“汪汪叫”。接着建立Cat类(小猫),让它输出“吃小鱼”。我们再来建立Pig类(小猪),让它输出“呼呼睡”。 现在呢,我们有了一个父类Pet,同时呢,它又有3个子类Cat,Dog,Pig。我们现在来把它们实例化。大家可以看到在输出面板上输出了“吃小鱼”“汪汪叫”“呼呼睡”。 有人会问,如果我们分别定义Cat,Dog,Pig这3个类,那不是一样可以实现同样的效果吗?那现在呢,这3个类都继承自Pet类有什么好处呢。我们现在来进一步扩展一下代码,比如说,我在Pet类中声明了一个公共变量master(主人),同时为它赋值“Horidream”,保存。现在我们看看Cat的主人是谁,大家可以看到,它已经可以直接追踪出小猫的主人是谁了。 同样,通过trace(实例名.master)。Dog的主人,Pig的主人都已经可以看到了。 也就是说通过对父类的一些修饰,本身就扩展了我们这3个子类所能承载的信息。