什么是多态:同一个操作作用于不同的对象有不同的结果。
多态的几个概念:
-
重载(overload):在同一个作用域(一般指同一个类)两个或多个函数名相同,参数列表不同的方法叫做重载,它的特点是:方法名必须相同,参数列表必须不同,返回值可以不相同。
-
重写(override):子类中为满足自己的需要来重复定义某个方法的不同实现,需要用override关键字,被重写的方法必须是虚方法,用的是virtual关键字。它的特点是(三个相同):相同的方法名,相同的参数列表,相同的返回值。
-
虚方法:即为基类中定义的允许在派生类中重写的方法,使用virtual关键字定义。虚方法也可以直接被调用。
-
抽象方法:在类中定义的必须在派生类中重写的方法。使用abstract关键字定义。抽象方法没有方法体,在派生类中必须实现方法。注意:抽象方法只能在抽象类中定义,如果不在抽象类中定义。
-
隐藏方法:在派生类中定义的和基类中的某个方法同名的方法,使用new关键字定义。隐藏方法不但可以隐藏基类中的虚方法,而且也可以隐藏基类中的非虚方法。隐藏方法中父类的实例调用父类的方法,子类的实例调用子类的方法。
-
虚方法与抽象方法最直观的区别:虚方法使用virtual关键字,抽象方法使用abstract关键字。虚方法有方法体,抽象方法没有方法体,所以抽象方法不能被调用。
-
一句话概括重载与重写的区别:重载是根据方法的签名来调用不同的方法,重写是根据子类中的需要重写基类中的方法。
为什么要用虚方法:在创建类的时候,因为信息不全,并不知道具体的操作,需要在调用的时候才知道要做哪些操作,简单的说法,就是具体情况要具体分析,这时就用虚方法表示,待调用的时候可以重写。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27710819/viewspace-1153172/
,如需转载,请注明出处,否则将追究法律责任。