社区
C#
帖子详情
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
打赏
收藏
new + virtual + override 是不是等于垃圾???
public class A { public A() { } public string method1() { } } 我想继承A 在method1上实现多态 c#是不是搞不定... 这样的话 你在设计类的时候必须预先知道method1可能被继承而标记为virtual或abstract 岂不是搞笑一般... 怎么可能考虑的那么周全
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
C#什么是继承?如何实现继承?
什么是继承?如何实现继承?
New
关键字的作用构造函数有无返回值静态构造函数和实例构造函数的区别析构函数的作用
New
关键字的作用构造函数有无返回值静态构造函数和实例构造函数的区别析构函数的作用
New
关键字的作用构造函数有无返回值静态构造函数和实例构造函数的区别析构函数的作用
【精品教程】C#基础概念二十五问.doc
【精品教程】C#基础概念二十五问.doc
浅谈
new
、
overr
ide
、
virtual
简要:
new
、
overr
ide
、
virtual
、
new
和
overr
ide
的区别、虚方法 一、
new
在C#中,
new
这个关键字使用频率非常高,主要有3个功能: a) 作为运算符用来创建一个对象和调用构造函数。 b) 作为修饰符。 隐藏作用! c) 用于在泛型声明中约束可能用作类型参数的参数的类型。 a) 作为运算符
new
关键字...
【Java相关】GC
垃圾
回收和内存分区
文章目录前言如何决定哪些对象是
垃圾
?1、引用计数法2、可达性分析法其他问题java的堆内存什么中生代¥%……& 前言 说起
垃圾
回收机制gc,主要是两部分为题需要解决: 如何判断谁是
垃圾
? 则么回收?(涉及算法和策略) 如何决定哪些对象是
垃圾
? 1、引用计数法 java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么简单的办法就是通过引用计数来判断一个对象是否可以被回收。如果一个对象没有任何引用与之关联,则说明该对象基本不太可能在其他地方被使用到,那么这个对象就成为
delphi-多态(overload,
overr
ide
)与接口(interface)
delphi-多态(overload,
overr
ide
)与接口(interface) 先来聊聊重载问题(也叫超载,总之是那个Overload)吧。在同一个类中,出现多个同名的方法的现象就是Overload。联系起上面提到的兄弟俩,我想这更好理解。他们从外观上是相似的,不同的是某些“参数”,类型上可能各异或是个数上不同。 在Delphi中,所有方法都默认是静态的,便于编译器和链...
C#
111,125
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章