重写,重载,多态
来源:互联网 发布:jquery拼接json字符串 编辑:程序博客网 时间:2024/05/16 15:31
override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。
class A : public B
overload是重载,一般是用于在一个类内实现若干重载的方法,这些方法的名称相同而参数形式不同。
void add ();
void add (int a);
class A : public B
overload是重载,一般是用于在一个类内实现若干重载的方法,这些方法的名称相同而参数形式不同。
void add ();
void add (int a);
继承是子类使用父类的方法,而多态则是父类使用子类的方法。使用多态是为了避免在父类里大量重载引起代码臃肿且难于维护。
C++中的多态性具体体现在运行和编译两个方面。运行时多态是动态多态,其具体引用的对象在运行时才能确定。编译时多态是静态多态,在编译时就可以确定对象使用的形式简单的说,建立一个父类的对象,它的内容可以是这个父类的,也可以是它的子类的,当子类拥有和父类同样的函数,当使用这个对象调用这个函数的时候,定义这个对象的类(也就是父类)里的同名函数将被调用,当在父类里的这个函数前加virtual关键字,那么子类的同名函数将被调用。
class Triangle extends Shape {public int getSides() { //重写 return 3; } }class Rectangle extends Shape { public int getSides(int i) { //重载 return i; } }public class Shape { public boolean isSharp(){ return true; } public int getSides(){ return 0 ; } public int getSides(Triangle tri){ return 3 ; } public int getSides(Rectangle rec){ return 4 ; } public static void main(String[] args) { Triangle tri = new Triangle(); //继承 System.out.println("Triangle is a type of sharp? " + tri.isSharp()); Shape shape = new Triangle(); //多态 System.out.println("My shape has " + shape.getSides() + " sides."); } }
注意Triangle类的方法是重写,而Rectangle类的方法是重载。
比较就可以发现多态对重载的优点:如果用重载, 则在父类里要对应每一个子类都重载一个取得边数的方法;如果用多态, 则父类只提供取得边数的接口,至于取得哪个形状的边数,怎样取得, 在子类里各自实现(重写)。
0 0
- 重写与重载 多态
- 多态、重载、重写、override
- 多态 重载 重写
- 多态 重载 重写
- 重写,重载,多态
- 多态,重载与重写
- Java 重载、重写、多态
- 继承,多态,重写,重载
- 多态--重载--重写
- 多态、重写、重载。
- 重写 重载 多态
- 重写、重载、继承、多态
- 重写 重载 多态
- 重写(覆盖)、重载、多态
- 多态,重载,重写等概念
- 继承、多态、重载和重写
- 继承、多态、重载和重写
- 继承、多态、重载和重写
- 调用tel://打电话
- AJAX技术基础介绍
- 寻找发帖“水王”
- ubuntu下调节鼠标速度
- IOS开发中判断字符串是否为空字符的方法
- 重写,重载,多态
- mysql 一次更新(update)多条记录
- 五、CCNode
- HDU 1059 Dividing (多重背包)
- 六、CCLayer
- android中CallBack的理解
- 图解classloader加载class的流程及自定义ClassLoader
- 七、CCScene
- ThinkPHP运算符计算