Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基类继承_C# - Fatal编程技术网

C# 基类继承

C# 基类继承,c#,C#,我对对象及其从父类和子类调用方法的能力有疑问 基类有一个方法()。主要有objectFromBaseClass和objectFromChildClass。两个对象都可以从基类访问method() 我正在努力领会这个想法 只要方法()未声明为私有,就可以。如果已定义的方法()声明为私有,则只有基类才能访问它。如果方法被声明为受保护,则基类和所有派生类都可以访问它。如果方法声明为内部,则可以在同一程序集(dll)中访问它。若方法被声明为公共的,那个么它可以在任何地方访问。遵循和 这些链接将消除您对成

我对对象及其从父类和子类调用方法的能力有疑问

基类有一个方法()。主要有objectFromBaseClass和objectFromChildClass。两个对象都可以从基类访问method()

我正在努力领会这个想法

只要方法()未声明为私有,就可以。如果已定义的方法()声明为私有,则只有基类才能访问它。如果方法被声明为受保护,则基类和所有派生类都可以访问它。如果方法声明为内部,则可以在同一程序集(dll)中访问它。若方法被声明为公共的,那个么它可以在任何地方访问。

遵循和

这些链接将消除您对成员可访问性的疑问

您应该将方法()设置为受保护的或公共的,以便在两个父级中访问 还有儿童班。可以在中的类内部访问私有方法 它们是创建/声明的


对。正如Bojin Li所说,除非在方法之前声明了“private”这样的访问修饰符,否则从方法基类继承的所有类都将具有“method()”成员

默认情况下,没有“public”访问修饰符的类成员被认为是私有的


需要记住的两件事(我还没有看到其他人提到过)是,如果所说的“method()”是“static”的,那么它可以在任何时候被访问,并且不需要从它的类继承来获得“method()”,而且在C#中一次只能从一个类继承。

这有点复杂。如果该方法声明为受保护的,则派生类中的方法只能在派生类的实例上调用该受保护的方法。它不能对基类的实例或从同一基类派生的其他类调用该受保护的方法。