c#发展

首页 » 常识 » 诊断 » 在NET中,C基类和派生类可实例化,
TUhjnbcbe - 2025/5/19 18:44:00
C#核心开发-第15单元-接口和继承-第2节:实例化C#核心开发-实例化1.实例化在C#中,虽然基类和派生类存在继承关系,但它们都可以被实例成对象。我们先来实例化一下派生类Student(继承了Person基类。)实例化派生类-图1在图1中,我们创建的子类Student中没有定义任何属性,但是在实例化后,却可以看到其中有3个属性,且这3个属性存在Person基类中。这说明在Student子类中,已经将Person基类中的属性继承过来了。基类中的成员也可以在子类中使用,达到了共享的目的。实例化子类-图2调用子类成员C#代码如下:Students=newStudent();s.Age=21;s.Name=小强;s.Sex=true;在图2中,我们在子类实例化后的对象中使用了基类中定义的3个属性成员。表示基类成员已继承下来并被子类使用了。我们知道一个C#基类可以被多个子类继承:子类继承基类-图3在图3中,Person基类又被Teacher派生类继承:实例化多个子类-图4实例化多个子类的C#完整代码:Students=newStudent();s.Age=21;s.Name=小强;s.Sex=true;//----------------------------Teachert=newTeacher();t.Age=22;t.Name=小花;t.Sex=false;只要Person基类被继承,其中的公有属性都可以被复用。除了子类可以实例化成对象使用外,C#基类当然也是可以实例化的,如下C#代码:基类实例化-图5实例化基类的完整C#代码如下:Personp=newPerson();p.Age=22;p.Name=小晃;p.Sex=true;对于C#基类来说,本身就是使用自己的属性,跟普通类一样使用。2.派生类成员对于C#派生类,当它继承了基类之后,还可以具有自己特有的属性或方法,如下代码在Student子类中添加一个Show()方法和一个属性,代码如下:子类中编写方法-图6子类编写自己的成员完整代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceYidosoft.Edu.Csharp.Inherit{///summary///派生类:学生类////summarypublicclassStudent:Person{//学校名称。publicstringSchoolName{get;set;}//显示。publicvoidShow(){stringstrSex=base.Sex==true?男:女;Console.WriteLine($姓名:{base.Name},年龄:{base.Age},性别:{strSex},学校:{SchoolName});Console.ReadKey();}}}图6的C#代码说明如下:(1).Student子类继承了基类Person,具有基类的所有公开成员。(2).Student子类添加了自己的一个属性和一个方法。这2个成员是子类独有的。现在我们再实例化一下Student子类:实例化Student类-图7此时,我们在图7中,看到了我们在子类中添加的自己的属性和方法。调用子类方法-图8调用子类方法C#代码如下:Studentstudent=newStudent();student.Age=22;student.Name=小强;student.Sex=true;student.SchoolName=实验中学;//调用方法student.Show();在图8中,Student对象中使用了基类的和自己的成员,二者混合在一起使用。运行一下结果,如图9所示:调用子类成员输出结果-图9在图9中,将基类和子类成员的全部信息都显示出来了。在实际项目中,需要提前了解业务需求,合理的定义基类和子类。SchoolName属性和Show()方法只存在子类中,基类是不会有的,如下图所示:调用基类属性-图10从这一点可以看出,子类拥有的成员肯定比基类多,所以可以实现将子类强制转换为基类。子类和基类转换-图11在图11中,使用了()转换符来实现强制类型转换,将子类型对象强制转换为基类型,这是允许的,这在大型项目中已常用。总结如下:(1)在C#中,基类和派生类都可以实例化,基类实例化后只能使用基类中的成员,不能使用子类中的成员。而子类实例化后,则可以使用父类中的成员。(2)在C#中,基类一般设计一些通用的公用的成员。而派生类设计一些个性的成员。这样就达到了代码复用的目的。C#深入编程-线上视频图文课堂配套课后技能作业+理论考试+源码淘宝¥购买已下架
1
查看完整版本: 在NET中,C基类和派生类可实例化,