C#中类的私有变量能被继承吗?若能被继承,那么private修饰的变量只能在它所属的类中被访问时怎么回事?
答案:2 悬赏:0 手机版
解决时间 2021-03-17 05:24
- 提问者网友:抽煙菂渘情少年
- 2021-03-16 19:08
C#中类的私有变量能被继承吗?若能被继承,那么private修饰的变量只能在它所属的类中被访问时怎么回事?
最佳答案
- 五星知识达人网友:上分大魔王
- 2021-03-16 19:52
一个类中的私有(private)变量是不能被继承的,不能被其他的类调用。
之所以不能被继承和不能被其它类调用是为了不让用户直接去操作这个对象,也就是说为了数据安全性。
例如:电冰箱上面调温度的按钮,如果给用户直接操作,那温度显示可以是任何数字(但是没那个温度)
所以出现了封装(隐藏内部的实现,提供外部接口),
代码:
private int number;
public int Number
{
get{return number;}
set{this.number=value;}
}
在另一个类里要调用number(实际上的调用不到的),调用Number就可以了,同样赋值给Number就是赋值给number,同样可以设置你能调用和赋值的范围。这样用户就不能把空调温度调到-100。
也许你会有这样的想法,直接写一个公共(public)的,然后设置它的取值赋值的范围还不是一样。肯定的回答:不一样。如果一个大型的程序的一千个类都要用到number你是不是要重复写一千个number,那样在栈中开辟的空间太多,太浪费内存。而且大部分类所赋的值和去的值都不能,那你写了一个固定的值有什么用。
之所以不能被继承和不能被其它类调用是为了不让用户直接去操作这个对象,也就是说为了数据安全性。
例如:电冰箱上面调温度的按钮,如果给用户直接操作,那温度显示可以是任何数字(但是没那个温度)
所以出现了封装(隐藏内部的实现,提供外部接口),
代码:
private int number;
public int Number
{
get{return number;}
set{this.number=value;}
}
在另一个类里要调用number(实际上的调用不到的),调用Number就可以了,同样赋值给Number就是赋值给number,同样可以设置你能调用和赋值的范围。这样用户就不能把空调温度调到-100。
也许你会有这样的想法,直接写一个公共(public)的,然后设置它的取值赋值的范围还不是一样。肯定的回答:不一样。如果一个大型的程序的一千个类都要用到number你是不是要重复写一千个number,那样在栈中开辟的空间太多,太浪费内存。而且大部分类所赋的值和去的值都不能,那你写了一个固定的值有什么用。
全部回答
- 1楼网友:蓝房子
- 2021-03-16 21:29
肯定不能啊 如果能 还要 protected干嘛?
private 是私有的 不论 继承 或者 新建对象 你在外部都不能用的
protected 只有本身 和 继承他的子类可以访问
private 是私有的 不论 继承 或者 新建对象 你在外部都不能用的
protected 只有本身 和 继承他的子类可以访问
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯