这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。 今天要介绍的是,对象之间的"继承"的五种方法。 比如,现在有一个"动物"对象的构造函数。 function Animal(){ this.species = "动物"; } 还有一个"猫"对象的构造函数。 funct ...
分类:
编程语言 时间:
2016-04-24 12:44:15
阅读次数:
214
通过数组元素访问方法的时候只能访问在 Animal中定义的方法,对 于 Tiger类和 Fish中定义的方法时却不能调用,例如语句 animal[2].swim();就是不正确的。当 需要访问这些方法时需要用到类型转换,演示程序如下。 主要看 move方法,move方法首先判断 animal对象是哪 ...
分类:
编程语言 时间:
2016-04-18 10:06:24
阅读次数:
456
方法覆写(overload)与方法的重载非常相似,它在 Java的继承中也有很重要的应用。 写程序可能会碰到下面的情况,在父类中已经实现的方法可能不够精确,不能满足子类 的需求。例如在前面的 Animal类中,breath方法就过于简单,对于鱼类动物是用腮呼吸的, 而对于哺乳动物则是用肺呼吸的,如何 ...
分类:
编程语言 时间:
2016-04-18 09:58:34
阅读次数:
310
继承和多态在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Baseclass、Superclass)。编写一个名为Animal的class,有一个run()方法可以直接打印:>>>classAnimal(o..
分类:
编程语言 时间:
2016-04-16 19:39:02
阅读次数:
269
一、创建对象 1.1初始化器 1.2构造方法 1.3属性 1.4对象方法 二、封装 三、继承 3.1Dog还是Dog 3.2Dog变成Animal了 四、多态 ...
分类:
编程语言 时间:
2016-04-15 00:08:08
阅读次数:
196
ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。 这种异常是如何产生的呢?举一个比较形象的例子。 Animal表示动物,Dog表示狗,是动物的子类,Ca ...
分类:
编程语言 时间:
2016-04-13 11:06:31
阅读次数:
220
在定义和实现COM接口时,纯虚函数有不可替代的作用。举个例子,可能有些牵强,但是能说明问题。比如,我有一个类Animal,维护了一种动物形象,现在我要实现一个函数Draw,把这个动物画到任意一种介质上,这种介质可能是屏幕也可能是位图,当然,在屏幕和位图上画图形肯定是不一样的,那么,我的Draw函数肯 ...
分类:
其他好文 时间:
2016-04-09 20:39:14
阅读次数:
386
对象具备多种形态就是多态; 没有继承就没有多态; 父类指针指向子类对象;Animal *a = [Dog new]; [a eat]; 调用方法是会检测对象的真是形象; NSObject *n = [Dog new]; NSObject *n = [Animal new]; OC是弱语法;runti ...
分类:
其他好文 时间:
2016-04-08 21:45:44
阅读次数:
211
1 using System; 2 3 namespace 类_阻止派生类重写虚成员 4 { 5 // 声明一个抽象类Animal(用abstract关键字声明抽象类) 6 public abstract class Animal 7 { 8 // 基类的抽象方法Voice(); 功能在派生类实现 ...
第一步: 先定义三个类: class Animal: def __init__(self, name): self.name = name #这个方法的意思是,如果继承该类,就得自己写talk方法,如果不写,就抛出异常 def talk(self): raise NotImplementedErro... ...
分类:
编程语言 时间:
2016-04-05 12:32:29
阅读次数:
180