C# 嵌套类和继承
Posted
技术标签:
【中文标题】C# 嵌套类和继承【英文标题】:C# Nested Classes and Inheritance 【发布时间】:2013-05-04 17:29:15 【问题描述】:只需要一些关于嵌套类和继承的帮助..
namespace blah
private abstract class InheritedSomething
public void doSomething() ;
class OtherClass : InheritedSomething
//Stuff
class NestedClass : InheritedSomething
//Stuff
这是正确的做事方式吗? NestedClass
继承 InerhitedSomething
而它的父类已经继承了它,这似乎有点多余......但是当我从 NestedClass
删除继承时,它要求我将 doSomething()
设为静态方法。
所以我的问题是,哪种方式是“正确的” - OtherClass
和 NestedClass
都继承 InheritedSomething
或仅 OtherClass
继承 InheritedSomething
和 doSomething()
成为 public static void
?
谢谢!
【问题讨论】:
应该 doSomething 在两个类中具有相同的实现吗?或者,OtherClass 和 NestedClass 中的 doSomething 有什么不同? 【参考方案1】:正确与否取决于您打算做什么。
内部类型对封闭类型成员具有特权访问权限,但不派生自它。
你对这些课程的意图是什么?
【讨论】:
【参考方案2】:这个设计没有错。
可以将方法设为静态的建议是一个完全独立的问题。请注意,可以并不意味着它应该。 (阅读有关决定 here 或 here 的更多信息)。当您删除继承时,doSomething
不再覆盖,这使得它有资格检查此建议。
【讨论】:
以上是关于C# 嵌套类和继承的主要内容,如果未能解决你的问题,请参考以下文章