Say A类是基类,然后你有A的B类子类(B类:A)。然后你有C级:B。
问题是如果你在A类中有一个方法,那么C类可以使用那个方法吗?
答案 0 :(得分:2)
是的,如果声明为public
或protected
,您可以。但不是private
。
感谢@DavidL ..我忘了提及internal
的特殊情况。
来自Visual Studio附带的C#手册(2012年版)::
如果我是对的,这也是一个新的隐藏功能,在C#5.0中:
嵌套类型可能隐藏(§3.7.1)基本成员。嵌套类型声明允许使用new修饰符,以便可以显式表达隐藏。例子
using System;
class Base
{
public static void M() {
Console.WriteLine("Base.M");
}
}
class Derived: Base
{
new public class M
{
public static void F() {
Console.WriteLine("Derived.M.F");
}
}
}
class Test
{
static void Main() {
Derived.M.F();
}
}
显示了一个嵌套类M,它隐藏了Base中定义的方法M.
答案 1 :(得分:1)
取决于。
答案 2 :(得分:0)
是的,当你从一个类继承时,你会得到它所有的方法,包括从其他方法继承的所有方法。
答案 3 :(得分:0)
public class A
{
public int Id { get; set; }
protected int protectedId { get; set; }
private int privateId;
}
public class B : A
{
}
public class C : B
{
public C()
{
int temp = Id; // works
int temp1 = protectedId; // works
int temp2 = privateId; // does NOT work
}
}
以及其他一些课程;
public void SomeMethod()
{
C c = new C();
int i = c.Id; // works
int j = c.protectedId; // does NOT work
int k = c.privateId; // does NOT work
}