黑马程序员技术交流社区
标题:
虚方法和抽象方法具体的区别
[打印本页]
作者:
dbqwaii
时间:
2013-3-10 13:27
标题:
虚方法和抽象方法具体的区别
请详细说明 谢谢 有些迷
作者:
HM张扬
时间:
2013-3-10 16:32
抽象方法是只有定义、没有实际方法体的函数,它只能在抽象函数中出现,并且在子类中必须重写;
虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖。
重写的子类虚函数就是被覆盖了。
前几天有人问了这个问题了,,,,
作者:
孔健
时间:
2013-3-10 18:41
一..抽象方法就是在声明方法时加上abstract关键字,要注意以下两点:
1. 抽象方法必须声明在抽象类中
2. 声明抽象方法时,不能使用virtual static private 修饰符
抽象方法声明引入了一个新方法,但不提供该方法的实现,由于抽象方法不提供方法的实现 ,因此抽象方法的方法体只能包含一个分号.
当从抽象类派生一个非抽象类时,需要在非抽象类中重写抽象方法,以提供方法的实现,重写抽象方法时使用override关键字.
二..虚方法 当类中的方法声明前加上了virtual修饰符时,我们称之为虚方法.
什么时候用虚方法? 若希望或预料到基类的这个方法在将来的派生类中会被重写时,则此方法必须声明为virtual.
override重写继承自基类的虚方法,可以理解为拆掉老房子,在原地址上建新房子,这样老房子再也找不到了(即基类中的虚方法永远调用 不到了).
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2