首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 基类非抽象类时,如何强制派生类实现某方法? [已结贴,结贴人:chenyun122]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:01:48 楼主
    基类非抽象类时,如何强制派生类实现某方法? 让派生类去继承一个接口吗? 这样如果,写派生类时没有继承接口,这个强制不就又失效了吗?
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gomoku
    • 等级:
    发表于:2008-05-07 16:07:371楼 得分:1
    还是用abstract修饰:

    C# code
    abstract class A { abstract public void MustImplement(); //<---- }

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:07:552楼 得分:1
    强制实现不太可能吧,你可以覆盖
    new一个方法,就覆盖了算了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:09:213楼 得分:0
    引用楼主 chenyun122 的帖子:
    基类非抽象类时,如何强制派生类实现某方法? 让派生类去继承一个接口吗? 这样如果,写派生类时没有继承接口,这个强制不就又失效了吗?


    不是说了吗,基类为非抽象类时.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:10:154楼 得分:0
    引用 1 楼 gomoku 的回复:
    还是用abstract修饰:


    C# code
        abstract class A
        {
            abstract public void MustImplement();            // <----
        }


    不是说了吗,基类为非抽象类时.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gomoku
    • 等级:
    发表于:2008-05-07 16:10:585楼 得分:95
    或者这样, 基本也可以完成作者的目的:
    C# code
    class A { public virtual void MustImplement() { throw new Exception("Must be implemented"); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:17:206楼 得分:1
    你这样把条件都限制死了,好像不可以再强制了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:19:347楼 得分:0
    gomoku 的第二个主意不错.

    要这样强制是因为写控件时,基类声明成abstract,会在visual studio设计界面中显示不出来,提示基类是抽象类的无法实例化.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gomoku
    • 等级:
    发表于:2008-05-07 16:23:418楼 得分:1
    引用 7 楼 chenyun122 的回复:
    gomoku 的第二个主意不错.

    要这样强制是因为写控件时,基类声明成abstract,会在visual studio设计界面中显示不出来,提示基类是抽象类的无法实例化.


    我常干这事:-)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:24:199楼 得分:1
    编译时强制派生类实现某方法,则该方法必须是抽象方法。这是规则。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:47:0510楼 得分:0
    引用 9 楼 dk385 的回复:
    编译时强制派生类实现某方法,则该方法必须是抽象方法。这是规则。


    写控件时,基类声明成abstract,派生类会在visual studio设计界面中显示不出来,提示基类是抽象类的无法实例化.
    不知这种问题有没有好的解决方法?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 20:29:1011楼 得分:0
    引用 10 楼 chenyun122 的回复:
    引用 9 楼 dk385 的回复:
    编译时强制派生类实现某方法,则该方法必须是抽象方法。这是规则。


    写控件时,基类声明成abstract,派生类会在visual studio设计界面中显示不出来,提示基类是抽象类的无法实例化.
    不知这种问题有没有好的解决方法?


    在派生类实现这个方法。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved