3
A
回答
2
是的,你可以,如果它被宣布为public
或protected
。但不是private
。
感谢@DavidL ..我忘了提及internal
的特殊情况。
从附带的Visual Studio(2012年版在这里)C#手册::
- •继承是传递的。如果C来自B,并且B从A派生出 ,则C继承B中声明的成员以及A中声明的成员。•派生类扩展其直接基类 类。派生类可以向其继承的成员添加新成员,但它不能删除继承成员的定义。 •实例 构造函数,析构函数和静态构造函数不是继承的, ,但所有其他成员都是,无论它们声明的可访问性为 (§3.5)。但是,根据其声明的可访问性,继承的成员可能无法在派生类中访问。 •派生类 可以通过声明具有 相同名称或签名的新成员来隐藏(§3.7.1.2)继承成员。但请注意,隐藏继承的成员不会删除该成员 - 它只会使该成员 直接通过派生类无法访问。 • 类的实例包含一组在类中声明的所有实例字段,并且其基类中存在一个从 派生类类型到其任何基类类型的隐式转换(第6.1.6节)。因此,对某个派生类的实例的引用 可被视为对其任何基类的实例的引用。 •一个类可以声明虚方法,属性和索引器,并且派生类可以覆盖这些函数成员的实现。 这使类 呈现多态行为,其中由功能成员调用执行的动作取决于调用该功能成员的实例的运行时类型而变化。
而且这是一个新的隐藏特征,如果我的权利,在C#5.0:
嵌套类型可能隐藏(§3.7.1)的基体部件。新的修饰符在嵌套类型声明中是允许的,这样可以明确表示隐藏。示例
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.
0
是的,当你从一个类继承你得到它的所有方法,包括它从其他方面继承的所有方法。
1
这取决于。
- 当A类的方法是私有的:没有
- 当A类的方法是受保护:是
- 当A类的方法是公开的:是
- 当类中的方法A是公开的或者是受保护的并且是虚拟的,C类可以覆盖该方法。
+2
也可以谨慎的指出,如果方法是虚拟的,那么类B可以通过将类标记为“密封”来防止类C重写该方法。 – itsme86
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
}
相关问题
- 1. JavaScript继承。从另一个类继承的对象和方法
- 2. 如何从另一个继承类的继承类的说话
- 3. 子类继承
- 4. C#:继承一个子类,它从父
- 5. C++中的继承(父类和子类)
- 6. 调用继承中的子类方法
- 7. 超类可以从其子类继承方法吗?
- 8. 从基类演变为可继承类继承类
- 9. 什么是子类从C++中的基类继承而来?
- 10. Python继承 - 调用子类中的基类方法?
- 11. C++继承,如何在基类的方法中调用子类的方法?
- 12. 继承Java子类
- 13. Python子类继承
- 14. Rails继承子类
- 15. 子类Python类继承
- 16. php继承:子类继承父类中的数据?
- 17. 多级继承:从子类
- 18. Perl:继承 - 基类和子类
- 19. 从另一个基类继承的基类?
- 20. 继承在lesscss,不继承子类
- 21. 公开从基类继承,从派生的类私有继承
- 22. C#类与子类和继承:在继承类中的设置值
- 23. 使用从基类继承的另一个类的变量的C++类函数继承
- 24. 其他继承类中的继承类
- 25. 继承基类
- 26. C++使用继承接口的类的子类方法
- 27. 继承类工厂方法的子类的问题(Objective-C)
- 28. 从子/子/继承类获取基类/父级/超级类
- 29. 继承是否可以影响子类中的方法?
- 30. 继承一个基类
这里是一个小例子,大家的答案附和:http://ideone.com/E0xVzZ –