关于C#继承运用的总结
整体代码部分:
解决方案:
父类Person类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 第六章__联系 { class Person { //姓名 public string Name { get; set; } //年龄 public int Age { get; set; } //无参构造 public Person() { } //带参构造 public Person(string name,int age) { this.Name = name; this.Age = age; } } }
子类Chinese类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 第六章__联系 { class Chinese:Person { public Sex Sex { get; set; } public Chinese() { } public Chinese(string name,int age,Sex sex):base() { this.Name = name; this.Age = age; this.Sex = sex; } } }
性别Gender的枚举类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 第六章__联系 { public enum Sex { 男,女 } }
Main函数:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 第六章__联系 { class Program { static void Main(string[] args) { Chinese chinaese = new Chinese("张三",20,Sex.男); Console.WriteLine(chinaese.Name+"\t"+chinaese.Age+"\t"+chinaese.Sex); Console.ReadLine(); } } }
总结:
1.什么是继承?
继承,就是一个类可以使用另一个类的属性和方法(也就是另一个类的成员)
2.子类继承父类的符号
为冒号(:)
class Chinese:Person //子类Chinese继承父类Person的属性和方法
3.当new子类构造的时候,底层发生了什么?
图解:
当new子类构造时,程序会自动指向子类的构造,但不进入子类的构造体赋值,
然后转向父类的构造,进入父类的构造体,执行父类的构造体的内容,
再回到子类的构造,执行子类的构造体,
子类的构造体执行完毕后,
跳转到Main函数中,
最后在内存中构建出子类的对象
4.子类并不是能继承父类的所有项:
子类不能继承父类的构造函数,
子类刻意继承父类的私有成员,但不能访问到
5.访问修饰符:
修饰符 当前类 其他类 子类
private 可以 不可以 不可以
public 可以 可以 可以
protected 可以 不可以 可以
6.base关键字
base可以调用父类的属性和方法,可以调用父类的构造函数
7.base()括号内的内容
base(传参顺序和父类构造一致,变量名和子类构造参数一致)
8.在子类调用构造的时候,默认会用base()调用父类的无参构造
9.当为父类的属性赋值的话,可以使用base代替this赋值
end~
关于C#继承运用的总结的更多相关文章
- javaScript的原型继承与多态性
1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...
- JavaScript的继承实现方式
1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...
- javascript中的继承与深度拷贝
前言 本篇适合前端新人,下面开始...... 对于前端新手来说(比如博主),每当对js的对象做操作时,都是一种痛苦,原因就是在于对象的赋值是引用的传递,并非值的传递,虽然看上去后者赋值给了前者,他们就 ...
- 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- JS继承类相关试题
题目一: //有关于原型继承的代码如下:function Person(name) { this.name = name;}Person.prototype = { getName : f ...
- JS继承之寄生类继承
原型式继承 其原理就是借助原型,可以基于已有的对象创建新对象.节省了创建自定义类型这一步(虽然觉得这样没什么意义). 模型 function object(o){ function W(){ } W. ...
- JS继承之借用构造函数继承和组合继承
根据少一点套路,多一点真诚这个原则,继续学习. 借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术( ...
- JS继承之原型继承
许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...
- 深入浅出JavaScript之原型链&继承
Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instanc ...
- 如果你也会C#,那不妨了解下F#(7):面向对象编程之继承、接口和泛型
前言 面向对象三大基本特性:封装.继承.多态.上一篇中介绍了类的定义,下面就了解下F#中继承和多态的使用吧.
随机推荐
- Git的使用学习资源
开学第一天一般都挺认真的,认真做个功课. 跟据Ryan Tang的推荐,有两个比较好的学习Git的网站:http://git.gitcafe.com/book/zh 还有一个是CodeSchool的一 ...
- EasyUi的快速开发框架
基于EasyUi的快速开发框架 先看图,下边这个简单的增.删.改.查,如果自己写代码实现,这两个页需要多少行代码? 如果再有类似的增.删.改.查,又需要多少行代码? 我最近搞的这个快速开发框架中, ...
- python包
有个伟人说过: python的学习很大一部分取决与你对第三方包的熟悉和掌握程度! virtualenv virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够: ...
- DSP TMS320C6000基础学习(4)—— cmd文件分析
DSP中的CMD文件是链接命令文件(Linker Command File),以.cmd为后缀. 在分析cmd文件之前,必需先了解 (1)DSP具体芯片的内存映射(Memory Map) (2)知道点 ...
- SOCKET网络编程细节问题(2)
SOCKET网络编程快速上手(二)——细节问题(2) 2.TCP数据包接收问题 对初学者来说,很多都会认为:客户端与服务器最终的打印数据接收或者发送条数都该是一致的,1000条发送打印,1000条接收 ...
- JS判断字符串是否包含某字符串 indexOf()方法使用
定义和用法 indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置. 开始的.如果没有找到子字符串,则返回 -1. 示例: <script type="text/jav ...
- 添加可运行的js代码
如何在博客园的文章/随笔中添加可运行的js代码 在博客园浏览大牛们写的文章时,经常会看到在文章中混有一些可运行示例,例如司徒正美的博客中: 带有可运行示例 可以点击“运行代码” 经过一番小小的探索,掌 ...
- Use weechat (IRC client) on OS X. MacBook Pro
Weechat is a console IRC client. It is opensource and very easy to use. I use weechat in my Linux PC ...
- XNA 4.0 环境搭建和 Hello World,Windows Phone 游戏开发
XNA 4.0 环境搭建和 Hello World,Windows Phone 游戏开发 使用 Scene 类在 XNA 中创建不同的场景(八) 摘要: 平方已经开发了一些 Windows Phone ...
- 代码创建 WPF 旋转动画
一.WPF窗体上有一个名为rectangle2的矩形 对应的XAML如下: <Window x:Class="WpfVideo.Window1" xmlns= ...