社区
C#
帖子详情
C#中关于继承的问题,请大家踊跃发言啊!!
zhq0918
2003-12-12 11:00:29
众所周知,继承是面向对象编程的特点和优点,我做的窗体Form2继承于窗体Form1,在Form1中的Form_Load事件中有代码
MessageBox.Show("你好啊!");我怎么在Form2中将Form1中应用简单的方法把它屏蔽掉啊!在Delphi中很容易处理的!请高手回答!
如果这都不方便的话,很不好的
...全文
33
41
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
41 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cnlamar
2003-12-12
zhq0918() ,顺序反了,修饰符当然得在class前面了。。。是吧?
public abstract class ArrayForm : System.Windows.Forms.Form
打赏
举报
回复
赞
cnlamar
2003-12-12
是啊,如果还要执行基类的PageLoad的话,就在子类方法中加base.调用基类的方法执行就可以了嘛。。。
打赏
举报
回复
赞
libwan
2003-12-12
这样改不行啊:
Form1:
public virtual void Form1_Load(object sender, System.EventArgs e)
{
MessageBox.Show("你好啊");
}
Form2:
public override void HerForm2_Load(object sender, System.EventArgs e)
========================
那是你并不是重载"Form1_load()"方法呀!
{
}
打赏
举报
回复
赞
zhq0918
2003-12-12
public class abstract ArrayForm : System.Windows.Forms.Form
这样写吗?是错误的
打赏
举报
回复
赞
cnlamar
2003-12-12
改了个示例,你看看成不?
abstract class Form1
{
public void PageLoad(object sender, System.EventArgs e)
{
//...
}
}
class Form2 : Form1
{
new void PageLoad()
{
//...
}
}
打赏
举报
回复
赞
Coder李海波
2003-12-12
事件(我是说同一个事件,例如Form Load,或者同一个控件的Click事件)的顺序,先执行父类的事件,再执行子类的事件,好像没有办法改变什么
可以在事件中调用自己写的virtual方法,如在Form1的Load事件中调用formLoad方法
public virtual void formLoad
{
MessageBox.Show("你好啊");
}
如果Form2不想执行这个方法里面的代码,override什么都不干就行了。
public override void formLoad
{
//....
//base.formLoad();
//....
}
打赏
举报
回复
赞
polarlm
2003-12-12
楼上的例子很有代表性的
打赏
举报
回复
赞
cnlamar
2003-12-12
窗体也是类构造的呀?怎么会不行呢?
对了,基类那边的类你加了基类修饰符了吗?
没加的话加上试试?
public abstract class UserBase
打赏
举报
回复
赞
zhq0918
2003-12-12
自定义的类当然可以了,我说的是窗体
打赏
举报
回复
赞
yoobj
2003-12-12
mark
打赏
举报
回复
赞
zhq0918
2003-12-12
不行啊,大家在想办法试一试
打赏
举报
回复
赞
jp311
2003-12-12
class BaseClass
{
public delegate void D(object sender, System.EventArgs e);
public event D E;
public BaseClass()
{
E += new D(F);
}
public virtual void F(object sender, System.EventArgs e)
{
System.Console.WriteLine("BaseClass");
}
public void F1()
{
E(this, new System.EventArgs());
}
}
class DerivedClass : BaseClass
{
public override void F(object sender, System.EventArgs e)
{
System.Console.WriteLine("DerivedClass");
}
}
class AppMain
{
static void Main()
{
DerivedClass obj = new DerivedClass();
obj.F1();
}
}
打赏
举报
回复
赞
cnlamar
2003-12-12
在重写方法前使用new关键字重写父类方法
比如new public bool WebUserLogout()
打赏
举报
回复
赞
zhq0918
2003-12-12
怎么new啊,老兄帮忙试试
打赏
举报
回复
赞
polarlm
2003-12-12
用 new试试
打赏
举报
回复
赞
zhq0918
2003-12-12
我试了,还是不行啊
打赏
举报
回复
赞
zhq0918
2003-12-12
这样改不行啊:
Form1:
public virtual void Form1_Load(object sender, System.EventArgs e)
{
MessageBox.Show("你好啊");
}
Form2:
public override void HerForm2_Load(object sender, System.EventArgs e)
{
}
打赏
举报
回复
赞
libwan
2003-12-12
楼上的,你这个是行不通的!
打赏
举报
回复
赞
FileNewExit
2003-12-12
try:
Form1:
protected override void OnLoad(EventArgs e)
{
MessageBox.Show("Hello");
}
Form2:Form1
protected override void OnLoad(EventArgs e)
{
}
打赏
举报
回复
赞
zhq0918
2003-12-12
我是不是需要把父类Form1里的所有的private 都改成public吗?我能这样改吗?
打赏
举报
回复
赞
加载更多回复
相关推荐
C#
v.s java 再贴+评点
希望
大家
踊跃发言
,
没有
问题
是讨论不清楚
的
。 另外
,
我再次声明:我没有攻击 java
的
意思
,
也没有对 java 程序员又任何
的
不敬。 最近
C#
和 java 谁更好
的
争论已经有一段时间了
,
我也谈谈自己
的
感想。 其实单纯从...
来杯咖啡-装饰者模式(Decorator) 2008-12-29 作者:王晓亮 来源:cnblogs.com
上篇【观察者模式】发布已经近一个月了
,
个人感觉反应并不太理想
,
因为
大家
响应都不是很积极
,
不知是文章那里写得有
问题
,
而且也没有人提出过有价值
的
改进建议
,
多少感觉有些失望L
!
因为工作繁忙
,
所以不可能把主要...
来杯咖啡-装饰者模式(Decorator)
上篇【观察者模式】发布已经近一个月了
,
个人感觉反应并不太理想
,
因为
大家
响应都不是很积极
,
不知是文章那里写得有
问题
,
而且也没有人提出过有价值
的
改进建议
,
多少感觉有些失望L
!
因为工作繁忙
,
所以不可能把主要
ICE 创建 聊天室小程序
ICE
的
优势是作为通讯
中
间件可支持跨平台
的
通讯
,
目前支持C++、
C#
、JAVA、Python、Ruby等多种语言。下面通过一个示例
,
描述怎样通过ICE建立C++与
C#
之间
的
通讯。一 示例描述 搭建一个简单
的
聊天室
,
服务端使用C++实现...
201203A Theory of Rational Jurisprudence.pdf
201203A Theory of Rational Jurisprudence.pdf
发帖
C#
加入
微信扫一扫
点击复制链接
分享社区
下载分享明细
10.7w+
社区成员
64.2w+
社区内容
.NET技术 C#
社区管理员
申请成为版主
帖子事件
创建了帖子
2003-12-12 11:00
社区公告
让您成为最强悍的C#开发者