c#到的virtual 为父类的方法,在子类中用override来覆盖怎么没错的?

[复制链接]
查看11 | 回复2 | 2013-6-27 19:31:57 | 显示全部楼层 |阅读模式
我自己举例吧假设中国人(子类) 继承自 人(基类)人(基类)定义了一个函数叫“吃晚饭”(可以定义为用手抓饭)如果这个函数不是virtual的话那么 下列代码Person p = new Chinese();p.EatDinner();调用的是 人(基类)的“吃晚饭” 而不是中国人的吃饭习惯而 如果这个函数是virtual的话那么 中国人(子类)可以用override 覆盖写这个virtual 代码那么 下列调用p.EatDinner();调用的是 中国人的“吃晚饭”函数 也就是用筷子吃面等等具体的内部实现呢 是基类有一个虚函数表记录所有的virtual函数这样 如果子类把基类的virtua...
回复

使用道具 举报

千问 | 2013-6-27 19:31:57 | 显示全部楼层
在子类中用override来重写父类中的虚方法叫做:里氏替换原则。但是父类不能替换子类中的方法。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行