对于基类和派生类中的多态及重载的最好解释方法
2013-08-28 21:10
483 查看
虚函数是在基类中定义的,目的是不确定它的派生类的具体行为。 例: 定义一个基类:class Animal//动物。它的函数为breathe()//呼吸。 再定义一个类class Fish//鱼 。它的函数也为breathe() 再定义一个类class Sheep //羊。 它的函数也为breathe() 为了简化代码,将Fish,Sheep定义成基类Animal的派生类。 然而Fish与Sheep的breathe不一样, 一个是在水中通过水来呼吸,一个是直接呼吸空气。所以基类不能确定该如何定义breathe,所以在基类中只定义了一个virtual breathe, 它是一个空的虚函数。具本的函数在子类中分别定义。程序一般运行时,找到类,如果它有基类,再找它的基类,最后运行的是基类中的函数, 这时,它在基类中找到的是virtual标识的函数,它就会再回到子类中找同名函数。派生类也叫子类。基类也叫父类。这就是虚函数的产生, 和类的多态性(breathe)的体现. 这里的多态性是指类的多态性。 函数的多态性是指一个函数被定义成多个不同参数的函数,它们一般被存在头文件中, 当你调用这个函数,针对不同的参数,就会调用不同的同名函数。例:Rect()//矩形。它的参数可以是两个坐标点(point,point)也可能是四个坐标(x1,y1,x2,y2) 这叫函数的多态性与函数的重载。
相关文章推荐
- C#基础:多态:基类可以定义并实现虚(virtual)方法,派生类可以重写(override)这些方法
- 类的 继承 使用关键字 extends 单向 重载基类 派生类访问基类的方法 基类名::基类方法或属性
- 声明一个类,它具有一个方法,此方法被重载三次,派生一个新类, 并增加一个新的重载方法,编写测试类验证四个方法对于派生类都有效
- C#多态 重载 虚方法 重写
- 多态时最好将基类的析构函数设为virtual、 C++中两个类相互包含引用问题 (转载)
- 基类和派生类中的方法覆盖
- 对于拖延症的最好方法
- Java多态中重载方法参数分别为父类和子类时的疑惑
- 1.方法的重载--【编译时的多态】
- C#继承---基类虚方法virtual,派生类隐藏方法new
- 面向对象中多态和泛型的关系(可以解释为什么说 iterator方法中有多态存在 )
- 类、对象、继承、封装、多态、方法的重载和重写、Java的访问修饰符与其它关键字
- C++入门学习:虚析构、构造中不能实现多态、基类指针指向派生类数组的弊端
- 重载、重写、虚方法、抽象方法、隐藏方法小记---C#多态
- C++基类调用派生类的方法
- 关于继承,不同继承方式,对于派生类成员以及基类的可见性
- swift继承自Objective-C基类时重载方法报错的问题
- 构造器、方法重载、继承、方法重写、自动转型、多态课堂笔记
- 【protected权限】java浅复制、深复制中,为什么在派生类中覆盖基类的clone()方法,并声明为public
- (转)关于继承,不同继承方式,对于派生类成员以及基类的可见性