多态,重载与重写

来源:互联网 发布:c语言创建目录函数 编辑:程序博客网 时间:2024/05/16 23:59
  1. 多态:多态是面向对象的一个重要特性,指的是同一个方法对于不同的对象会有不同的表现形式,即父类有多个不同的子类,子类继承并重写了父类的某一个方法。子类可以赋值给父类的的指针,当这个指针调用某一个方法时,行为会不一样(这取决于具体的子类)。在编译代码时,无法确定父类真正调用的是哪个子类的方法,只有在运行期动态查找。引用网友一句话,无继承,无多态。
  2. 重载:在一个类内部可以有多个同名的方法(函数),即方法名相同,参数类型不同,或者参数个数不同,对返回值无要求,这是重载。重载不是面向对象的特性,因为在编译器,编译器会根据参数列表对方法进行重命名,所以,在编译器方法名就唯一确定了。
  3. 重写:重写是对原有方法的重新实现,往往指子类重写父类的方法,重写不可改变参数列表和返回值类型(如果改变的话,返回值类型必须是父类方法返回值类型的子类。例如父类返回Plant *, 子类可以返回Apple *,其中Apple Class从Plant Class 继承,苹果树是树的子类嘛)。

         (以上内容是看了众多网友资料后,自己的理解,敬请网友批评指正)。
0 0