C#如何定义父类,让子类初始化时必须执行某一操作?

wch_99 2011-05-05 12:33:44
C#如何定义一个父类,让子类初始化时必须执行某一个操作?
谢谢指点
...全文
637 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wllllll 2011-05-05
  • 打赏
  • 举报
回复

public class a {
public a(){
MessageBox.Show("z");
}
public a(Int32 m1) {
}
}
public class a1: a {
public a1() {
}
}


a1 v = new a1();

父类的public a()会被执行
CGabriel 2011-05-05
  • 打赏
  • 举报
回复
把基类写成抽象的。。
claymore1114 2011-05-05
  • 打赏
  • 举报
回复
直接在 子类的 构造函数中 对属性 赋值。
dreamrising 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 karascanvas 的回复:]
C# code


class 父类
{
public 父类(){
赋值();
}

public int 属性{get;set;}

public virtual void 赋值(){ }
}

class 子类 : 父类
{
public override void 赋值(){ 属性 = 12……
[/Quote]就是,子类看不是能访问到父类属性么?
vrhero 2011-05-05
  • 打赏
  • 举报
回复
不允许父类无参构造函数即可...
  • 打赏
  • 举报
回复
貌似没办法要求子类必须执行什么方法吧
就算你父类写完了各种要求调用指定方法的构造函数
但子类不继承父类构造函数就没办法了啊
种草德鲁伊 2011-05-05
  • 打赏
  • 举报
回复


class 父类
{
public 父类(){
赋值();
}

public int 属性{get;set;}

public virtual void 赋值(){ }
}

class 子类 : 父类
{
public override void 赋值(){ 属性 = 123; }
}



这样写也太麻烦了,直接在派生类的构造方法里给属性赋值不行嘛
wch_99 2011-05-05
  • 打赏
  • 举报
回复
不好意思,我没表达清楚。
问题是这样的:

C#如何定义一个父类,让子类初始化时必须执行一个操作:要求子类给父的一个属性赋值
小道消息 2011-05-05
  • 打赏
  • 举报
回复
在父类的无参数构造函数里面写必须执行的操作
种草德鲁伊 2011-05-05
  • 打赏
  • 举报
回复
那要看具体怎么样初始化了,可以通过构造方法,或者重写抽象/虚方法
kingdom_0 2011-05-05
  • 打赏
  • 举报
回复
父类定义成接口或者抽象类,子类继承父类时,要实现接口中声明的方法或抽象类中的方法。
wu_rual123 2011-05-05
  • 打赏
  • 举报
回复
定义一个接口,或者定义一个抽象类
子类继承它们时,必须实现接口和抽象类中所定义的内容

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧