继承:子承父业 
子:子类    父:父类    业:所有非私有成员
好处:代码的复用
 
继承后,实例化子类时,不止子类的构造,父类的构造也会执行,而且父类的构造先于子类的构造执行
即使在子类可以看到父类的成员,但成员依然属于父类,所以在使用父类成员的同时也会实例化父类
 
如果父类中存在有参构造,在子类中必须给参数
public Student():base(){

}

子类可以重写父类的方法

方法重写分为:隐藏式重写,强制重写

隐藏式重写 关键字new

public new void Show(){//new也可省略

}

隐藏式重写根据对象的类型决定调用哪个类的方法,如果是父类的对象就调用父类的方法,如果是子类的对象就调用子类的方法

强制重写 关键字 virtual,abstract,override

1.virtual 虚方法

虚方法可以被子类重写,也可以直接调用它本身

public virtual void Show(){ //父类  

}
public override void Show(){ //子类 }

2.abstract 抽象

抽象类不可以实例化,抽象类中不一定要有抽象方法,但是抽象方法必须在抽象类中

抽象方法不可以有方法体,因此必须被子类重写才能使用

抽象类用来表示一种很大的种类,但它本身不存在

例如:狗,鸟,猫都属于动物,但是 “动物” 本身是不存在的,只是一种抽象的概念,所以无法确定它自身的方法,因此抽象方法不能有方法体

public abstract void Show();//父类

public override void Show(){//子类

}

interface 接口

父类只能继承一个,但是接口可以继承多个

接口只需要规定好方法的形式,不需要实现方法,让继承接口的类来实现

接口的方法不实现也可以调用,利于分工合作

interface class
{
void fun();
}
IO可以操纵文件
操纵文件需要:
    FileStream 文件流
    StreamWriter 写入器
    StreamReader 读取器
简单的操作也可以通过File类的静态方法,比较简便

C# 基础复习 二 面向对象的更多相关文章

  1. java基础复习二——面向对象一

    面向对象三大特性:封装,继承,多态 类:对象的蓝图,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义 对象:是实际存在的该类事物的每个个体,也称为实例 类之间三种关系:依赖关系(uses-a) ...

  2. IOS基础之 (二) 面向对象思想

    编写Objective-C程序时,要使用Foundation框架. 什么是框架? 框架(framework)是由很多类(class)组成的库,可以用来编写程序. 对象(Object) 对象可以保存数据 ...

  3. delphi 基础之二 面向对象概念初步

    面向对象概念初步 •类自动生成 快捷键:ctrl+shift+c 1.类的定义 类是用户创建的数据类型,包括状态.表达式和一些操作.有3个组成部分,即字段.方法和属性.字段是类的内部数据变量,方法就是 ...

  4. C语言基础复习总结

    C语言基础复习总结 大一学的C++,不过后来一直没用,大多还给老师了,最近看传智李明杰老师的ios课程的C语言入门部分,用了一周,每晚上看大概两小时左右,效果真是顶一学期的课,也许是因为有开发经验吧, ...

  5. 《Java基础复习》—常识与入门

    突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...

  6. javase基础复习攻略《五》

    总结完JAVA的基础语法和面向对象思想后,今天为大家补充一下JAVA中的数组,数组是什么呢?大家是不是想到了集合,数组和集合有相似之处,集合中的数据无序,不可以重复.数组中则存放着具有相同特征的一组数 ...

  7. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  8. C#基础总结之八面向对象知识点总结-继承与多态-接口

    .方法深入讲解(返回值,形参与实参) 方法 public int getName(int i,int j) { int sum = i + j; return sum; } .利用泛型存储对象数据 . ...

  9. C#基础总结之七面向对象知识点总结1

    class Class //定义一个类 名字是Class { ; string NAME; string deptName; ; //如果是常量 只能获取,不能赋值 public string Nam ...

随机推荐

  1. [IOI2011]Race $O(nlog^{2}n)$ 做法

    这个应该还不是正解,明天看一下正解到底是什么... Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in&qu ...

  2. Alios-Things的学习与使用(1)

    目录 Alios-Things的学习与使用 1.简介 1.1 为什么要学alios-Things 2. 环境搭建 2.1 使用docker toolbox安装docker 2.2 测试使用dockde ...

  3. 计蒜客 阿里天池的新任务—简单( KMP水 )

    链接:传送门 思路:KMP模板题,直接生成 S 串,然后匹配一下 P 串在 S 串出现的次数,注意处理嵌套的情况即可,嵌套的情况即 S = "aaaaaa" ,P = " ...

  4. 参数化取值策略Random

    1.Random+Each iteration,跟顺序读取的结果唯一不同的就是这里是随机读取,取值是每次迭代取值   2.Random+Each occurrence,随机取值更新方式     3.R ...

  5. WEB服务器(Tomcat)

    在小型的应用系统或有特殊需要的系统中,也可以使用一个免费的Web服务器: Tomcat,该服务器支持全部的JSP以及Servlet 规范, 下载 Tom 查看计算机上被占用端口号的情况: 使用Fpor ...

  6. 使用动态代理实现dao接口

    使用动态代理实现dao接口的实现类 MyBatis允许只声明一个dao接口,而无需写dao实现类的方式实现数据库操作.前提是必须保证Mapper文件中的<mapper>标签的namespa ...

  7. LiquidCrystal库函数

    主要资料来源: 极客工坊-知识库 (LiquidCrystal库地址:http://wiki.geek-workshop.com/doku.php?id=arduino:libraries:liqui ...

  8. nodejs-Module

    nodejs的打包程序 模块:实现特定功能的文件 1.通过require引入模块 2.模块中的功能(变量,函数),通过赋给exports对象的某个属性提供给调用者使用 1 2 function sum ...

  9. BA--近零能耗示范楼(西门子-中国建筑科学研究院院内)

    中国建筑科学研究院院内的一栋办公楼使用了西门子的全套楼控.节能.消防.远景开关面板技术,每年的能耗为25kwh,远低于国家绿色能源标准.

  10. BA-闭式冷却塔系统