我对于对象及其从父类和子类调用方法的能力有疑问。
基类有一个方法()。在主要的,我有objectFromBaseClass和objectFromChildClass。两个对象都可以从基类访问method()吗?
我想抓住这个主意。
答案 0 :(得分:4)
只要方法()未声明为私有,是的。如果您定义的method()被声明为private,那么只有基类可以访问它。如果方法声明为protected,则基类和所有派生类都可以访问它。如果方法被声明为internal,则可以在同一个Assembly(dll)中访问它。如果方法被声明为public,则可以在任何地方访问它。
答案 1 :(得分:2)
关注Access Modifiers (C# Programming Guide)和Access Modifiers。
这些链接将清除您对会员可访问性的疑问。
您应该在两个父级中使method()受保护或公共访问 和儿童班。私有方法可以在类中访问 它们是创建/声明的。
答案 2 :(得分:1)
是。正如Bojin Li所说,除非在方法之前声明了一个类似'private'的访问修饰符,否则从方法的基类继承的所有类都将具有“method()”成员。
默认情况下,没有“公共”访问修饰符的类成员被视为私有。
要记住的两件事(我还没有见过其他人已经提到过),如果说“method()”是“静态的”,可以随时访问它,而不需要继承它的类获得“method()”,你也只能在C#中一次继承一个类。