C#中方法中访问控制修饰符不写代表什么?

在继承关系中,方法重写是否和访问控制修饰符有关呢,比如父类:internalvirtualvoidToHospital(){Console.WriteLine("打针")... 在继承关系中,方法重写是否和访问控制修饰符有关呢,比如 父类:
internal virtual void ToHospital()
{
Console.WriteLine("打针");
}
子类:
public override void ToHospital()
{
Console.WriteLine("吃药");
}
重写就会报错,好像只是要求控制符范围子类重写的大于父类就可以吧,为啥呢~
展开
 我来答
hua350264633
2014-01-18 · TA获得超过115个赞
知道答主
回答量:117
采纳率:0%
帮助的人:77.3万
展开全部
internal表示内部的,也就是说 此方法在 父类内部可以被重写,你子类虽然继承了父类,但是并不是父类的内部类,所以你重写 这个方法 要报错咯,访问修饰符可以理解成权限,他这里规定只有内部人使用,所以不能重写
sizhuyang
2014-01-17 · TA获得超过1522个赞
知道小有建树答主
回答量:714
采纳率:0%
帮助的人:588万
展开全部
这就是继承中对使用可访问性级别的限制,记住就行了
声明类型时,最重要的是查看该类型是否必须"至少"与其他成员或类型"具有同样的可访问性"。
例如:
直接基类必须至少与派生类具有同样的可访问性。
以下声明将导致编译器错误,因为基类 BaseClass 的可访问性小于 MyClass:

class BaseClass {...}//不写就是internal
public class MyClass: BaseClass {...} // Error
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新康利0s
2014-01-18 · TA获得超过148个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:87.9万
展开全部
不写的话默认是private
internal的话是程序集里面可见

如果子类的ToHospital()是私有的,而继承的父类ToHospital()是公有,那么就会出现这种问题
Parent p = new Child();
p.ToHospital()//Error
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友66adf10
2014-01-18 · 超过32用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:75.8万
展开全部
不写代表 private 私有

你这段,重写的访问修饰符,不可改变。
且该方法只能被程序集内部调用,外部即使重写该方法,也是不能外部调用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
asdfgyuiop2012
2014-01-18
知道答主
回答量:60
采纳率:0%
帮助的人:22.5万
展开全部
访问修饰符和方法的重写只是编写的形式不一样,意思都一样,
假如:在父类中编写的方法和子类中编写的方法,到Main()里,都可以访问,
但是 ,给父类实例化后,父类可以访问子类的方法和自己的方法,相反,子类就只能访问自 己的方法,不能访问父类的方法

访问修饰符不写也可以,那这样用途不大,
方法的重写,比如一个很简单的例子:Console.WriteLine();
这个输出有19中方法,有带参数,有带多个参数,有带不同类型的数据
所以,你也可以自定义方法,带多种形式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sueris
2014-01-18 · TA获得超过1497个赞
知道大有可为答主
回答量:1095
采纳率:0%
帮助的人:318万
展开全部
我是来做新年任务的,采纳一个,帅哥
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式