【发布时间】:2016-03-20 05:07:40
【问题描述】:
谁能解释一下有什么区别
ParentClass obj= new ChildChildClass();
和
ParentClass obj= new ParentClass();
由于两者
class ParentClass{
public void ParentClassMethod(){
}
}
class ChildClass : ParentClass{
public void ChildClassMethod(){
}
}
据我了解,在这两种情况下,可访问的内容保持不变。那么有什么意义呢?
【问题讨论】:
-
如果基类是
abstract或有任何virtual方法,您会看到不同。在这种具体情况下,没有区别,除了使用派生(子)类作为变量类型将允许您也访问其子方法(并且可能能够将其传递给不同的、更具体的方法)。 -
您可以将第一个转换为 ChildClass,从而访问 ChildClass 的方法和属性。
-
您是否尝试过搜索?处理多态性的大量问答。一旦你引入另一种派生自
ParentClass的类型,它就会变得很明显。 -
那次搜索的结果是什么?
-
是的,您的问题是什么? “有什么区别”除了“你正在实例化两个不同的类”之外,并不能真正回答。