new + virtual + override 是不是等于垃圾???

jokerjava 2005-04-07 04:08:01
public class A
{
public A() {
}
public string method1() {
}
}

我想继承A 在method1上实现多态 c#是不是搞不定...

这样的话
你在设计类的时候必须预先知道method1可能被继承而标记为virtual或abstract
岂不是搞笑一般... 怎么可能考虑的那么周全
...全文
419 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjcking 2005-06-15
  • 打赏
  • 举报
回复
参照C#设计模式
wjckaxi 2005-06-13
  • 打赏
  • 举报
回复
HOHo...学习ing...
JasonHeung 2005-04-09
  • 打赏
  • 举报
回复
那c#的new + virtual + override 就真正的等于垃圾了!

virtual + override是成对的。virtual里可以调用父类的相同方法,这是一种调用链的传递 关系。
而new就是完全隐藏父类的该方法,在以下的派生类就再也看不到其父类的父类的方法了!!!

C#里禁止重载也可以用seal修饰符。
badboy168 2005-04-08
  • 打赏
  • 举报
回复
楼主已经回我就不说啥了

在软件开发这前设计阶段这些工作就已经做好了,强议看看UML
awperpvip 2005-04-08
  • 打赏
  • 举报
回复
uping...
pray1997 2005-04-08
  • 打赏
  • 举报
回复
你就直说.net烂,java好不就得了,绕那么大的弯子!

你那个狗屁问题在C#里面有什么不好解决的?做一个继承于A的wrap类,以wrap类作为新的基类不就完鸟
koenemy 2005-04-07
  • 打赏
  • 举报
回复
唉,又是经贴
nga96 2005-04-07
  • 打赏
  • 举报
回复
要不用设计模式搞定之
thundersoft 2005-04-07
  • 打赏
  • 举报
回复
这是个问题,因为你不可能在parent class里面非常清楚的知道那个method将来肯定重载,有不可能每个都标为virtual,所以没有很好的办法,这要靠经验;
另外java确实不存在这个问题,因为java的方法默认都是可以重载的,只不过这样有性能损失,毕竟runtime后期邦定慢一些,c#也是考虑到这个问题才采用了一种折衷的办法
wjcking 2005-04-07
  • 打赏
  • 举报
回复
^_^
zhongwanli 2005-04-07
  • 打赏
  • 举报
回复
^_^
tobaco 2005-04-07
  • 打赏
  • 举报
回复
呵呵,用习惯了c#,对于java 的这种隐示override不习惯而已
tobaco 2005-04-07
  • 打赏
  • 举报
回复
这个没什么可比的,两种语言的方式不太一样,不能说哪个好哪个不好。
virtual也有坏处,你不知道哪个会被override
yadier 2005-04-07
  • 打赏
  • 举报
回复
呵呵 何必要求c#和java一样呢 各有各自的风格
cpio 2005-04-07
  • 打赏
  • 举报
回复
问题是我不想让别人把我的OverRide了呢?

java轻松

pubilc final void method1() {
}

这不就相当于C#不要Virtual了吗

也差不多吧
jokerjava 2005-04-07
  • 打赏
  • 举报
回复
问题是我不想让别人把我的OverRide了呢?

java轻松

pubilc final void method1() {
}
cpio 2005-04-07
  • 打赏
  • 举报
回复
然后呢
我题的问题的解决方法就是 ---> 以后写程序都得加上virtual
那c#的new + virtual + override 就真正的等于垃圾了

问题是我不想让别人把我的OverRide了呢?

Java办不到吧
jokerjava 2005-04-07
  • 打赏
  • 举报
回复
wacle([Smile!]) 说到 OOD jokerjava(冷血) 笑了
wacle 2005-04-07
  • 打赏
  • 举报
回复
so i can say you're too fresh in OOD.
jokerjava 2005-04-07
  • 打赏
  • 举报
回复
这个例子说明的是,JAVA的所有方法都是相当于C++/C#里的virtual方法!!!!

有理

然后呢
我题的问题的解决方法就是 ---> 以后写程序都得加上virtual
那c#的new + virtual + override 就真正的等于垃圾了
加载更多回复(20)

111,125

社区成员

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

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

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