C#-继承中的构造方法 093

  `通过之前的学习,应该理解其特性并会简单应用继承,现在开始学习继承中的构造方法,没有重新创建项目,还是使用之前例子的代码

  使用Teacher类举例,先将父类People类的构造方法与Teacher类的构造方法写出来

  图中红框中的是父类People类与子类Teacher类的构造方法

  

C#-继承中的构造方法 093

  父类构造方法

  

C#-继承中的构造方法 093

  子类的构造方法

  现在按F6进行编译或者菜单栏中 生成->生成解决方案,就会出现如下错误信息

  

C#-继承中的构造方法 093

  继承时构造方法的错误提示信息

  出现这种错误信息的原因:是继承中构造方法是不能被继承的,所以如果运行输出时子类使用了父类中的成员时首先就会调用父类的无参构造方法,如果父类中没有此方法就会报错,解决方法有两个 1)在父类中写个无参的构造方法2)在子类中调用父类的构造方法

  

C#-继承中的构造方法 093

  父类添加1个无参的构造方法

  先学习在构造方法中使用的两个关键字 base与this,先看父类中使用this的代码

  

C#-继承中的构造方法 093

  父类构造方法中使用this关键字

  之前学习过构造方法的重载,这个就应用了方法的重载方式;首先看第一个构造方法,将People类中所有的属性都进行了赋值,第二个构造方法 参数后面冒号加this的意思是调用第一个构造方法,this的第一个参数name用于接收上方 string name中的name的值;第二与第三个参数因为没有传入值,所以使用默认值;this.name=name注释掉的原因是在调用第一个构造方法的时候已经通过this.Name=name赋值过了,此处不用再重新赋值了; 第三个构造方法与第二个的同理,不再赘述

  注意: 1)构造方法的大括号不能省略 2)使用this的构造方法,最好是调用给属性赋值最全的构造方法

  子类使用base关键字调用父类的构造方法

  

C#-继承中的构造方法 093

  子类使用base的构造方法

  在子类中使用base调用父类的构造方法,在调用时会发现共有4个(按我书写的有:无参,1个,2个,3个)构造方法,图中调用的是父类中最全的构造方法,子类的Salary属性只能自己赋值,其他注释掉的会通过父类的构造方法赋值,base中的参数会传递给父类构造方法参数对应的参数,可以通过调试进行查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值