PS:注释和讲解全在代码中

1. 类的继承

C#继承特点

  • C#派生类只能继承一个父类,可以通过接口来实现多重继承
  • 继承是可以传递的,例如C从B派生,B又从A派生,那么C不仅继承了B中声明的成员,同样也继承了A中声明的成员
  • 派生类是对基类的扩展,派生类可以添加新的成员,但不能移除已经继承的成员的定义
  • 构造方法和析构方法不能被继承(不能继承,不过可以访问),除此之外其他成员能会被继承(当然更可以访问)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace C4_程序设计
{class Point     //点类{public int x, y;public Point() { x = y = -1; }      //手写一个默认构造(重载方法)//构造方法99%的情况下都是public,基本上只在单例模式下才使用private修饰public Point(int x, int y){this.x = x;this.y = y;}void Move(int dx, int dy){x += dx;y += dy;}public void Print(){Console.WriteLine("当前调用父类方法:点的坐标为{0},{1}", x, y);}}class State: Point          //和C++不一样,C#不支持多继承,也就是说一个类只能有最多一个父亲{public int col;//public new int x;/*如果这里对父类的x进行隐藏,重新定义一个新的x,也就是声明public new int x;那么输出结果将会变为当前调用父类方法:点的坐标为5,6当前调用子类方法:点的坐标为0,-1,点的颜色为0,价值为0当前调用父类方法:点的坐标为-1,-1当前调用父类方法:点的坐标为-1,-1当前调用父类方法:点的坐标为-1,-1*/private double val;public State() { }public State(int x, int y, int col, double val): base(x, y)            //调用父类的构造方法,如果没有调用,则默认为调用父类默认构造方法{this.col = col;this.val = val;this.x = x;}public double Val{get{return val;}set{if (value >= 100 || value <= 0)val = -1;elseval = value;}}/*public void Print()       //错误,该方法在父类中已经出现,必须使用关键字new进行隐藏{Console.WriteLine("当前调用子类方法:点的坐标为{0},{1},点的颜色为{2},价值为{3}", x, y, col, val);}*/public new void Print(){Console.WriteLine("当前调用子类方法:点的坐标为{0},{1},点的颜色为{2},价值为{3}", x, y, col, val);}}class 类与继承{static void Main(){Point temp, fa = new Point(5, 6);State son = new State();fa.Print();     //当前调用父类方法:点的坐标为5,6son.Print();        //当前调用子类方法:点的坐标为-1,-1,点的颜色为0,价值为0((Point)son).Print();       //当前调用父类方法:点的坐标为-1,-1temp = son;temp.Print();       //当前调用父类方法:点的坐标为-1,-1son.x = -155;temp.Print();       //当前调用父类方法:点的坐标为-155,-1//为什么修改son会影响temp呢?这里别忘了之前有提到过的,C#和C++的不同,temp和son指向的是同一堆空间//其实不建议这么做//son = temp;//son = (State)fa;        //这两个语句都错误,不允许将父类对象转换为子类对象son = (State)temp;          //正确,因为这个父类对象里面实际上装的是子类对象,所以可以转回子类对象,遵循里氏转换原则}}
}

程序类视图:

C#基础8:类的继承相关推荐

  1. java 什么是类的继承_Java基础,类的继承,粗略的理解希望对大家有所帮助!

    Java基础:继承 读者老爷们大家好,今天图图带大家了解一下java基础里的继承. 首先确定一下我们今天的学习的三个目标.第一个是类的继承:第二个是访问控制权限:第三个方法重写(覆盖)override ...

  2. Python基础,类的继承,类的多态继承等

    # day 4 # 类中成员变量描述对象的属性值根据对象不同,会产生区别,称此类变量为实例变量 # 类中成员变量描述对象的属性值根据对象不同,会产生区别,称此类变量为类变量# # class QieZ ...

  3. Java基础 -- 复用类(组合和继承)

    复用类有两种实现方式. 在新的类中产生现有类的对象,由于新的类是由现有类的对象所组成,所以这种方法称之为组合. 采用继承实现. 一  组合语法 下面创建两个类WaterSource和Sprinkler ...

  4. 类的继承(三种继承方式)

    我只是挑着我不太会的地方整理,可能比较基础. 类的继承主要分为三类,公有继承,私有继承,保护继承. 然后主要记录一下不同的继承方法对派生类的不同作用. 1,派生类私有继承于基类. 这个时候,派生类继承 ...

  5. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  6. java类继承语法_java类的继承(基础)

    ---恢复内容开始--- 这篇随笔和大家讲讲java中类的继承是什么?希望对你们有所帮助. 目录 一.java继承是什么? 二.为什么使用java继承 三.java继承的实现 1.1  java继承的 ...

  7. python 类和对象_Python零基础入门学习33:类与面向对象编程:类的继承

    注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. 本文字数约1300,阅读时间约为3分钟. Python面向对象编程 类的继承机制 如果一个类A继承自另一个类B,就把继承者类A称 ...

  8. c++基础知识点(6)类的继承,构造,析构顺序,虚继承等

    学习继承之前,我们先回顾下protected(保护)成员 protected 成员的特点与作用: -对建立其所在类对象的模块来说,它与private成员的性质相同 -对于其派生类来说,它与public ...

  9. 【Python基础知识库】Python类的继承

    继承是一种创建新类的方式,新创建的类加子类,继承的叫父类.超类.基类.继承是类与类之间的关系,继承的作用是减少代码冗余.提高重用性. 继承的特征:所有的类都继承自object类,即所有的类都是obje ...

  10. java类的继承(基础)

    ---恢复内容开始--- 这篇随笔和大家讲讲java中类的继承是什么?希望对你们有所帮助. 目录 一.java继承是什么? 二.为什么使用java继承 三.java继承的实现 1.1  java继承的 ...

最新文章

  1. Proxmox系列:简单实现虚拟机迁移
  2. 7、linux网络编程--广播
  3. 汇编中的REPZ CMPSB
  4. android 阴影背景显示文字_公众号排版如何做出“果冻”文字效果?
  5. 一直出现 Enter passphrase for key '/root/.ssh/gitkey12.pub'
  6. 上传文件和提交textfield_0基础掌握Django框架(37)文件上传
  7. Golang并发:再也不愁选channel还是选锁
  8. 目标检测——标注文件的格式设计
  9. 串口通信中ReadFile和WriteFile的超时详解!
  10. hibernate中session 与JDBC中 connection分析
  11. app自动化之混合应用的测试(h5,小程序)
  12. [已解决]360极速浏览器.为什么后台一直占用20%的cpu?
  13. matlab虚拟变量,不要再稀里糊涂的做回归了:如何设置哑变量
  14. matplotlib绘制随机漫步
  15. 第十三届蓝桥杯大赛软件赛省赛(Java 大学C组)
  16. Hyper 虚拟机删掉,如何恢复
  17. pure-specifier on function-definition
  18. qlv文件怎么打开 怎么把qlv文件转换成MP4的文件呢
  19. STM32进入Standby模式并唤醒
  20. 七夕有哪些送女朋友的小众又高级的礼物?小众又高级的礼物推荐

热门文章

  1. python怎么读取excel-python如何读写excel文件
  2. python有哪些用途-Python有哪些用途
  3. python从入门到放弃表情图-Python 从入门到放弃(一)
  4. micropython和python区别-MicroPython与Python速度对比
  5. 如何系统的自学python-怎样才能彻底系统的自学python?!白Python菜鸟教程
  6. python项目开发实例-有趣的十个Python实战项目,让你瞬间爱上Python!
  7. 高通宣称其语音识别系统准确率高达95%
  8. 语音识别软件、语音识别平台和语音识别技术
  9. “语音识别”+“视觉识别” - AI将引爆智能硬件市场 科技大佬们是这么认为的?...
  10. 人工智能被拒绝,语音识别做不到给电视直播加字幕?