我对OOP比较陌生,所以想清除一些东西,
我有以下代码
class Parent
{
public Parent()
{
Console.WriteLine("Parent Class constructor");
}
public void Print()
{
Console.WriteLine("Parent->Print()");
}
}
class Child : Parent
{
public Child()
{
Console.WriteLine("Child class constructor");
}
public static void Main()
{
Child ChildObject = new Child();
Parent ParentObject = new Child();
ChildObject.Print();
ParentObject.Print();
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Parent Class Constructor
Child Class constructor
Parent Class Constructor
Child Class constructor
Parent->Print()
Parent->Print()
Run Code Online (Sandbox Code Playgroud)
我的问题如下:
1)为什么在使用构造函数实例化对象时调用基类构造ChildClass函数?没有明确指定base关键字.有没有办法避免调用基类构造函数?
2)为什么ParentClass ParentObj = new ChildClass();可能?而不是相反.