一个例子,假设他们都设从user这个类继承下来的,当他们登陆时,你可能不知道具体是哪一种用户,而需要确定权限时,就可能需要override。MyUser u = (MyUser) MySystem.CurrentUser; //current user could be one of the teacher, student or admin.if (u.HasPermissionOn(SomeThing)){ // } else { // }这时候你不知道具体是那个函数在执行,不过总之是他们中的一个,以后又再多的类型,只要他们是从user继承下来的,这段函数都可以适用,今天来个级别:教授,明天来个级别:助教,不用这个方法,你就忙乎了。 // MyUser class ... public virtual bool HasPermissionOn(int Something) { return false; }// teacher class..... public teacher : MyUser { public override bool HasPermissionOn(int Something) { // teacher's process return theResult; }// same in student & admin's class
//
}
else
{
//
}这时候你不知道具体是那个函数在执行,不过总之是他们中的一个,以后又再多的类型,只要他们是从user继承下来的,这段函数都可以适用,今天来个级别:教授,明天来个级别:助教,不用这个方法,你就忙乎了。
// MyUser class ...
public virtual bool HasPermissionOn(int Something)
{
return false;
}// teacher class.....
public teacher : MyUser
{
public override bool HasPermissionOn(int Something)
{
// teacher's process
return theResult;
}// same in student & admin's class