0
回答
遇到一个面向对象无法解决的问题。
华为云数据库免费试用   

如下代码所示:

public abstract class ReadOnlyRuleBase{ public abstract string GetName() ;} public abstract class RuleBase: ReadOnlyRuleBase{ public override string GetName() { return "MyTable" ;}} public class MyTable: RuleBase{ // 我想在这里添加约束,一定要重写 GetName 方法。怎么办?}

 

即: 孙类一定要继承某类的虚方法。

 

后来,变通处理:

public interface IReadOnlyRule{} public interface IWriteableRule{} public abstract class RuleBase{ public abstract string GetName() ;} public abstract class MyTable:RuleBase , IWriteableRule{ public override string GetName(){ return " MyTable " ;} }

 后来,想到一个变通的办法:

public abstract class ReadOnlyRuleBase{ public abstract string GetName() ;} public abstract class RuleBase: ReadOnlyRuleBase{ public override string GetName() { return GetRuleName() ;} public abstract string GetRuleName() ;} public class MyTable: RuleBase{ // 一定要重写 GetRuleName , 来达到重写爷类的 GetName 方法的目的。}

原文链接:http://www.cnblogs.com/newsea/archive/2012/04/12/2443239.html
<无标签>
举报
长平狐
发帖于6年前 0回/45阅
顶部