我是开发和初学者的新手.我在C#学习OOP.我想知道以下概念: -
//I have done this practically
// This is base class
Student student = new Student();
//This is derived class
SchoolStudent schoolStudent = new SchoolStudent();
//derived class object is assigning to base class.. it is ok for the complier
student = schoolStudent;
//base class object is assigning to derived class... complier error
schoolStudent = student;
Run Code Online (Sandbox Code Playgroud)
1)您将派生对象类型分配给它是您应用程序可扩展性的基础.的实际类型保持衍生,但它提出了在带状基部类的代码.你只在基类对象,采取行动在那里可以,所以不必所有的不同的对象类型代码的所有角落找寻.为了顺利工作,你可以使用多态性
Human h = new Student();
Run Code Online (Sandbox Code Playgroud)
Student,Mechanic,Doctor,Kid都是Humans,所以这成了树在那里Human是一个根.向后执行意味着将树向上滚动.谁是现在的根?您的代码层次结构中断
2)构造顺序从基类开始到上层.所以在上面的例子中:首先将被称为构造函数Human和之后的构造函数Student.