当前位置:   article > 正文

C# & Unity 面向对象补全计划 之 继承(字段与属性)

C# & Unity 面向对象补全计划 之 继承(字段与属性)

 本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正

本系列旨在通过补全学习之后,给出任意类图都能实现并做到逻辑上严丝合缝

Q:为什么要单讲继承字段与属性,不讲继承方法了吗???

A:因为继承方法离不开多态,多态相对于继承又是新的内容,容易混淆概念

1.继承的介绍

在 C# 中,继承是面向对象编程的一个重要概念。它允许一个类(子类)从另一个类(父类)继承属性和方法,从而实现代码的重用和扩展

大大大前提是,你需要让父类和子类在同一命名空间,就比如:

 

2 继承字段

首先,对于继承的字段等可以采用protected修饰符保证访问权限和安全性

C# & Unity 面向对象补全计划 之 访问修饰符-CSDN博客

其次,继承而来的字段可以在子类的构造函数,方法等中使用

除非是静态字段,不然无法给子类的字段赋值,别犯傻

使用栗子: 

比如我现在有一个房子类,其有两个字段:标准地基长度,标准地基宽度

商业住房和住宅住房基于房子的标准地基长款进行修改

房子类:

  1. class Houes {
  2. protected int baseSubgradeLength;
  3. protected int baseSubgradeWeigth;
  4. public Houes() {
  5. baseSubgradeLength = 100;
  6. baseSubgradeWeigth = 100;
  7. }
  8. }

住宅和商业地基的继承与修改

  1. Dwelling dwelling = new Dwelling();
  2. Commerce commerce =new Commerce();
  3. class Houes {
  4. protected int baseSubgradeLength;
  5. protected int baseSubgradeWeigth;
  6. public Houes() {
  7. baseSubgradeLength = 100;
  8. baseSubgradeWeigth = 100;
  9. }
  10. }
  11. class Dwelling : Houes {
  12. public Dwelling() {
  13. Console.WriteLine("{0}{1}", baseSubgradeLength += 50, baseSubgradeWeigth += 50);
  14. }
  15. }
  16. class Commerce : Houes {
  17. public Commerce() {
  18. Console.WriteLine("{0}{1}", baseSubgradeLength += 100, baseSubgradeWeigth += 100);
  19. }
  20. }

3.继承属性

现在,为了房子地基的字段更加安全,有关部门设置为私有变量,只给出属性接口去修改

商业类和住宅类还是想修改地基长宽,应该怎么办?

 

  1. class Houes {
  2. private int baseSubgradeLength;
  3. private int baseSubgradeWeigth;
  4. public Houes() {
  5. baseSubgradeLength = 100;
  6. baseSubgradeWeigth = 100;
  7. }
  8. protected int SubgradeL
  9. {
  10. get => baseSubgradeLength;
  11. set => baseSubgradeLength = value;
  12. }
  13. protected int SubgradeWeigth
  14. {
  15. get=> baseSubgradeWeigth;
  16. set => baseSubgradeWeigth = value;
  17. }
  18. }

还是像字段一样,在构造函数里直接通过继承来的属性访问器修改就行了 

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. Dwelling dwelling = new Dwelling();
  7. dwelling.
  8. Commerce commerce =new Commerce();
  9. class Houes {
  10. private int baseSubgradeLength;
  11. private int baseSubgradeWeigth;
  12. public Houes() {
  13. baseSubgradeLength = 100;
  14. baseSubgradeWeigth = 100;
  15. }
  16. protected int SubgradeL
  17. {
  18. get => baseSubgradeLength;
  19. set => baseSubgradeLength = value;
  20. }
  21. protected int SubgradeWeigth
  22. {
  23. get=> baseSubgradeWeigth;
  24. set => baseSubgradeWeigth = value;
  25. }
  26. }
  27. class Dwelling : Houes {
  28. public Dwelling() {
  29. Console.WriteLine("{0}{1}", SubgradeL += 50, SubgradeWeigth += 50);
  30. }
  31. }
  32. class Commerce : Houes {
  33. public Commerce() {
  34. Console.WriteLine("{0}{1}", SubgradeL += 100, SubgradeWeigth += 100);
  35. }
  36. }

 好了,现在字段和属性部分你驾轻就熟了,下一篇文章就是关于继承方法了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/919372
推荐阅读
相关标签
  

闽ICP备14008679号