C# 面向对象编程2 继承

文章目录

  • C# 面向对象编程2 继承
    • 1.概念
      • 1.1子类继承了父类,那么子类从父类那里继承过来了什么?
      • 1.2 子类有没有继承父类的构造函数?
      • 1.3 继承的特性
    • 2. 代码

1.概念

我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员,
单独的封装到一个类中,作为这些类的父类。

即作用是去除重复代码。

1.1子类继承了父类,那么子类从父类那里继承过来了什么?

首先,子类继承了父类的属性和方法,但是子类并没有继承父类的私有字段。

1.2 子类有没有继承父类的构造函数?

子类并没有继承父类的构造函数,但是。子类会默认的调用父类无参数的构造函数,
创建父类对象,让子类可以使用父类中的成员。
所以,如果在父类中重新写了一个有参数的构造函数之后,那个无参数的就被干掉了,
子类就调用不到了,所以子类会报错。
解决办法:
1)、在父类中重新写一个无参数的构造函数。
2)、在子类中显式的调用父类的构造函数,使用关键字:base()

1.3 继承的特性

1、继承的==单根性:一个子类只能有一个父类。
2、继承的传递性==

object是所有类的基类

new关键字创建对象时
1)、创建对象
2)、隐藏从父类那里继承过来的同名成员
隐藏的后果就是子类调用不到父类的成员。

2. 代码

/// 父类
public class Person
{private string _name;//继承属性(不同名时)public string Name{get { return _name; }set { _name = value; }}//继承方法(不同名时)public void CHLSS(){Console.WriteLine("吃喝拉撒睡");}// 有参构造函数,在子类要显式初始化public Person(string name){this.Name = name;}}
///子类,继承语法 : 父类名
public class Student : Person
{public Student(string name, int age, char gender, int id): base(name, age, gender){this.Id = id;}private int _id;public int Id{get { return _id; }set { _id = value; }}// 在父类有CHLSS()所以会覆盖父类的public void CHLSS(){Console.WriteLine("吃喝");}public void Study(){Console.WriteLine("学生会学习");}
}

在实际代码中,一个类往往建一个.cs类文件

使用

Student s = new Student("学生", 18, '男', 101);//新建对象和初始化
s.CHLSS();//调用的是子类的
s.Name = "张三";

C# 面向对象编程2 继承相关推荐

  1. 面向对象编程 封装 继承 多态(三大特征)(第三篇)

    封装 封装是面向对象编程的三大特征之一. 封装有两方面的含义: 1.将数据(属性)和行为(方法)包装到类对象中.方法内部对属性进行操作,在类对象的外部调用方法.这样,无需关心方法内部的具体实现细节,从 ...

  2. JavaScript学习随记——面向对象编程(继承)

    @Example:基于原型链的继承 <!DOCTYPE HTML> <html><head><meta http-equiv="Content-Ty ...

  3. Python - 面向对象编程 - 多继承

    继承的详解 https://www.cnblogs.com/poloyy/p/15216652.html 这篇文章讲的都是单继承,Python 中还有多继承 Python 多继承的背景 大部分面向对象 ...

  4. 【Java开发】面向对象编程:继承

    前言

  5. 面向对象编程思想--继承

    子类可使用出私有外的一切属性和方法.

  6. 面向对象编程思想概览(三)继承

    一.简介 本讲以大家耳熟能详的<西游记>中的唐僧师徒四人为例,介绍了类的继承的概念和实现方法,总结了继承的特性和优点,帮助同学们理解面向对象编程中继承的用法,进而掌握面向对象程序设计的基本 ...

  7. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

    介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...

  8. Go面向对象编程的三大特性

    Go面向对象编程的三大特性 1.基本介绍 Golang仍然有面向对象编程的继承,封装和多态的特性,只是实现的方式和其它OOP语言不一样. 2.面向对象编程思想-抽象 抽象: 在定义一个结构体类型时,实 ...

  9. go 面向对象编程-1

    结构体 一个程序就是一个世界,有很多对象(变量) golang语言面向对象编程说明 golang也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言.所以说golan ...

最新文章

  1. 【SM2证书】利用BC的X509v3CertificateBuilder组装X509国密证书
  2. 数据结构——栈——中缀表达式和后缀表达式
  3. 玩转CSDN博客之自定义博客栏目,根据需要定制栏目
  4. 用WebCollector爬取新浪微博数据
  5. amd linux 性能,10年内AMD处理器有多大改进?Linux下皓龙和霄龙每瓦性能对决
  6. 共享快递柜业务场景实战(服务构建)
  7. 从 wiscKey 看 LSMtree 的不足
  8. ionic 富文本编辑样式后,前台不能回显样式
  9. 正则表达式 详解---2017-04-16
  10. 65. 雇员管理系统(2)
  11. XJTU-SY滚动轴承加速寿命试验数据集
  12. 手机端解决2倍图3倍图自适应
  13. 穿越技术火线,聆听内心声音——暨龙泉第三届IT禅修营
  14. java 5分钟_java计算下一个整5分钟时间点
  15. 树链剖分 - 月下“毛景树”(BZOJ 4151)
  16. 文墨绘学【书法双师】
  17. 辅导班师资力量介绍!
  18. 【简单】反转双向链表-Java
  19. redis中的save配置项
  20. iOS 基于 AVFoundation 制作的用于剪辑视频项目

热门文章

  1. 苹果开始准备生产 iPhone 5S 了
  2. python爬取高德POI并生成shp(关键字搜索/多边形搜索)
  3. python如何进入编程界面_Python可视化界面编程入门
  4. openjudge 1.5.24 正常血压
  5. 流程驱动的企业数字化转型
  6. WeLink让制造再升级:三江电气数字化转型之路
  7. Linux pg打桩(1)单线程
  8. 影像处理第一篇之影像旋转(软件插件篇)
  9. UE4 shader 玻璃、磨砂、木材、水体材质制作 学习笔记
  10. [论文研读]Compiler Optimization of Accelerator Data Transfers