C#中方法中访问控制修饰符不写代表什么?
在继承关系中,方法重写是否和访问控制修饰符有关呢,比如父类:internalvirtualvoidToHospital(){Console.WriteLine("打针")...
在继承关系中,方法重写是否和访问控制修饰符有关呢,比如 父类:
internal virtual void ToHospital()
{
Console.WriteLine("打针");
}
子类:
public override void ToHospital()
{
Console.WriteLine("吃药");
}
重写就会报错,好像只是要求控制符范围子类重写的大于父类就可以吧,为啥呢~ 展开
internal virtual void ToHospital()
{
Console.WriteLine("打针");
}
子类:
public override void ToHospital()
{
Console.WriteLine("吃药");
}
重写就会报错,好像只是要求控制符范围子类重写的大于父类就可以吧,为啥呢~ 展开
7个回答
展开全部
这就是继承中对使用可访问性级别的限制,记住就行了
声明类型时,最重要的是查看该类型是否必须"至少"与其他成员或类型"具有同样的可访问性"。
例如:
直接基类必须至少与派生类具有同样的可访问性。
以下声明将导致编译器错误,因为基类 BaseClass 的可访问性小于 MyClass:
class BaseClass {...}//不写就是internal
public class MyClass: BaseClass {...} // Error
声明类型时,最重要的是查看该类型是否必须"至少"与其他成员或类型"具有同样的可访问性"。
例如:
直接基类必须至少与派生类具有同样的可访问性。
以下声明将导致编译器错误,因为基类 BaseClass 的可访问性小于 MyClass:
class BaseClass {...}//不写就是internal
public class MyClass: BaseClass {...} // Error
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不写的话默认是private
internal的话是程序集里面可见
如果子类的ToHospital()是私有的,而继承的父类ToHospital()是公有,那么就会出现这种问题
Parent p = new Child();
p.ToHospital()//Error
internal的话是程序集里面可见
如果子类的ToHospital()是私有的,而继承的父类ToHospital()是公有,那么就会出现这种问题
Parent p = new Child();
p.ToHospital()//Error
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不写代表 private 私有
你这段,重写的访问修饰符,不可改变。
且该方法只能被程序集内部调用,外部即使重写该方法,也是不能外部调用的
你这段,重写的访问修饰符,不可改变。
且该方法只能被程序集内部调用,外部即使重写该方法,也是不能外部调用的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
访问修饰符和方法的重写只是编写的形式不一样,意思都一样,
假如:在父类中编写的方法和子类中编写的方法,到Main()里,都可以访问,
但是 ,给父类实例化后,父类可以访问子类的方法和自己的方法,相反,子类就只能访问自 己的方法,不能访问父类的方法
访问修饰符不写也可以,那这样用途不大,
方法的重写,比如一个很简单的例子:Console.WriteLine();
这个输出有19中方法,有带参数,有带多个参数,有带不同类型的数据
所以,你也可以自定义方法,带多种形式。
假如:在父类中编写的方法和子类中编写的方法,到Main()里,都可以访问,
但是 ,给父类实例化后,父类可以访问子类的方法和自己的方法,相反,子类就只能访问自 己的方法,不能访问父类的方法
访问修饰符不写也可以,那这样用途不大,
方法的重写,比如一个很简单的例子:Console.WriteLine();
这个输出有19中方法,有带参数,有带多个参数,有带不同类型的数据
所以,你也可以自定义方法,带多种形式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我是来做新年任务的,采纳一个,帅哥
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询