2 shenhuan111 shenhuan111 于 2014.12.08 16:38 提问

C#类的继承,C#有public,protected,private这几种继承之说吗??

如果没有,那是以哪种形式继承;

如果父类 有1.private 变量,2.protected变量 ,3.public变量,
在子类中这几个变量是什么,是private 、protected、public。

11个回答

caozhy
caozhy   Ds   Rxr 2014.12.08 19:02
已采纳

没有,C#和C++不同,只有一种继承方式,相当于C++的public继承。也就是基类中的private成员,在派生类中不可见。另外,在C# 1.0的时代,C#的继承方式相当于private继承。

也就是可以看到基类private的成员。为什么C# 2.0修改了规则(并且延续至今)?据Anders本人说,是出于安全性的考虑。

shenhuan111
shenhuan111 谢谢
大约 3 年之前 回复
xuzuning
xuzuning   Ds   Rxr 2014.12.08 16:55

private 私有的,只在定义的类中有效,自然就不能继承
protected 受保护的,只在定义的类及其派生类中有效
public 公共的,可在类外访问

xuzuning
xuzuning 回复shenhuan111: 当然有,是类就有! http://www.baidu.com/s?wd=C23%E6%9C%89public%EF%BC%8Cprotected%EF%BC%8Cprivate&ie=utf-8
大约 3 年之前 回复
shenhuan111
shenhuan111 回复shenhuan111: C#中有这种说法吗
大约 3 年之前 回复
shenhuan111
shenhuan111 那这个有想c++ class a:public A ; class a:protected A ; class a:private A; 这样的说法吗
大约 3 年之前 回复
SandyPrince
SandyPrince   2014.12.08 17:19

public : 类的内部和外部代码都可访问;private :类的内部可以访问,外部不行;
protected:l类的内部或者从该类继承的子类可以访问。

java ,C# 中只能单继承;

C++中可以多继承。

SandyPrince
SandyPrince 回复shenhuan111: 继承之后只是不能超越父类的权限,没有说要降级吧!(ps:有待考证)
大约 3 年之前 回复
shenhuan111
shenhuan111 如果有其他的b类继承了a子类(a继承了A),那A中protected和pubilic在b中是和a一样是private和protected还是其他的??
大约 3 年之前 回复
yfenfang
yfenfang   2014.12.08 16:42

C#有public,protected 继承 没有private 继承之说

yfenfang
yfenfang 回复shenhuan111: 答问2,跟C++的访问规则一样,C#还多了一个 在程序集中的 internal
大约 3 年之前 回复
shenhuan111
shenhuan111 问1:c#中public,protected 继承如何写, 问2:如果父类 有1.private 变量,2.protected变量 ,3.public变量, 在子类中这几个变量是什么,是private 、protected、public。这个跟C++一样吗
大约 3 年之前 回复
shenhuan111
shenhuan111   2014.12.08 16:45

C#有public,protected 继承 没有private 继承之说
??

问1:c#中public,protected 继承如何写,

问2:如果父类 有1.private 变量,2.protected变量 ,3.public变量,
在子类中这几个变量是什么,是private 、protected、public。这个跟C++一样吗

yfenfang
yfenfang   2014.12.08 16:46

父类 .private 变量 在子类中,private 无法访问,
父类 .protected变量 在子类中为 private
public 变量 在子类中为 .protected变量

 因为被继承后,访问权限降一级
shenhuan111
shenhuan111 1.无2.private 变量 ,3.protected变量,如果b类继承了a类那这1,2,3 是什么
大约 3 年之前 回复
shenhuan111
shenhuan111 回复shenhuan111:
大约 3 年之前 回复
shenhuan111
shenhuan111 对了如果还有一个物体继承这个子类那 A类中的1.private 变量,2.protected变量 ,3.public变量,a子类中是
大约 3 年之前 回复
shenhuan111
shenhuan111 那你说的C#有public,protected 继承 是指??如何写,给个简单例子
大约 3 年之前 回复
shenhuan111
shenhuan111   2014.12.08 17:48

各位我有点糊涂了,我对C++比较了解,C#刚开始弄,可以的话请耐心帮下忙

yfenfang
yfenfang   2014.12.08 18:30

,C# 中只能单继承 ,还能利用接口,实现多继承

yfenfang
yfenfang   2014.12.08 18:30

,C# 中只能单继承 ,还能利用接口,实现多继承

caozhy
caozhy   Ds   Rxr 2014.12.08 19:14

很遗憾,因为Google暂时上不了,我一时找不到当初Anders原话的文章。在那个文章中,Anders举例说,比如一个提供加密算法的类,如果没有使用强签名的类库,那么攻击者可以通过伪造一个随机数发生器的类,派生系统默认的那个。

返回固定的种子代替随即种子,使得这个加密算法形同虚设。而随机种子是私有字段,就可以保护起来,那么通过派生类伪造这个类的攻击就会无效。

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!