第三章

对于继承:继承是根据父类创建新子类的过程;

对于继承:例:

Public class Father

{
     public void say()

{

//dosomething

}

}

Public class Son:Father

{

Public void say()

{

//dosomething

}

}

这这里Son就隐藏了Father的say方法,也就是覆盖了;

但C#里希望这样写

Public class Son:Father

{

Public new void say()//多加一个new

{

//dosomething

}

}

这里讲讲base关键字,上一章讲this的时候提过:

Base是对父类的声明:

在编译器里,”base.”后面就出现了父类里的属性和方法,而

“this.”就出现了本类里额属性和方法;就是这个区别;

对于对象的生命周期,课本上的那个例子挺好的:

例:

Public class Grandsire

{

Public Grandsire()

{

Consoler.WriteLine(“ 调用Grandsire构造”);

}

~Grandsire()

{

Consoler.WriteLine(“ 调用Grandsire析构”);

}

}

Public class Father:Grandsire

{

Public Father()

{

Consoler.WriteLine(“ 调用Father构造”);

}

~Father()

{

Consoler.WriteLine(“ 调用Father析构”);

}

}

Main()

{

Father f=new Father();

}

输出:

调用Grandsire构造

调用Father构造

调用Father析构

调用Grandsire析构

对于这样的结果,我就不多说什么了,看疗效吧

虚拟方法和重载方法:

这个考试中记住,在继承父类虚拟函数是要用关键字override来重载

例:

Class Father

{

Public virtual void say()

{

//dothing

}

}

Class Father

{

Public override void say()

{

//dothing

}

}

抽象类:

对于抽象类的定义:

Abstract class

记住几个要点:

抽象类里面不一定都是抽象方法;

在抽象类里定义抽象方法的时候,在子类继承这个抽象父类时,如果子类也是不是抽象类,必须为父类的抽象方法提供具体实现方法,要么是override abstract修饰;

例:

Public abstract class Father

Abstract void say();

Abstract void do();

Class Son :Father

{

Public override say()

{

//dothing

}

Public override abstract void do();

}

抽象类和借口一样不能被实例化

密封类,关键字 sealed

Sealed calss

就是不让继承的类

如果给方法定义sealed 方法不允许重载;

随机推荐

  1. NOIP2006 能量项链

    洛谷1063 能量项链 本题地址:http://www.luogu.org/problem/show?pid=1063 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N ...

  2. POJ 1738 石子合并2 GarsiaWachs算法

    石子合并(GarsiaWachs算法) 只能用该算法过!!! 详解看代码 //#pragma comment(linker, "/STACK:167772160")//手动扩栈~~ ...

  3. Tcp/Ip协议族简单解读及网络数据包/报/帧数据格式及封装及解包;

    http://www.creseek.cn/products-install/install_on_bsd_linux/ 中文检索 离线cloudera ecosystem components: h ...

  4. delphi 完全控制Excel 文件

    ( 一 ) 使用动态创建的方法 uses ComObj; 首先创建 Excel 对象Var   ExcelApp : Variant ;   ExcelApp := CreateOleObject ( ...

  5. 第十三章、学习 Shell Scripts 善用判断式

    善用判断式 利用 test 命令的测试功能 我要检查 /dmtsai 是否存在时,使用: [root@www ~]# test -e /dmtsai [root@www ~]# test -e /dm ...

  6. 转载总结一些关于Google chart api的知识

    <script type="text/javascript">      google.setOnLoadCallback(drawChartLine);      f ...

  7. CSS滤镜

    Filter属性介绍 Alpha滤镜的使用 Blur滤镜的使用 Filph.Filpv滤镜 DropShadow滤镜 Glow 滤镜 Gray ,Invert,Xray 滤镜 Shadow滤镜 19. ...

  8. SQL函数中的动态执行语句

    一.为什么要使用动态执行语句? 由于在PL/SQL 块或者存储过程中只支持DML语句及控制流语句,并不支持DDL语句,所以Oracle动态执行语句便应允而生了.关于DDL与DML的区别,请参见:DDL ...

  9. Python Telnet弱口令爆破脚本及遇到的错误与问题

    写得时候遇到了一个很大的问题,就是我在发送用户名,接受用户名就会一直卡住.然后等了好久后提示 recv ‘\r\nSession timed out.\r\n\r\nTelnet Server has ...

  10. JS基础DOM篇之一:何为DOM?

    近日在园子看了一篇文章,一位前端负责人问应聘者何为DOM事件流的三个阶段,我当时一看也是懵圈,于是强迫症复发,遂想要搞清楚它.谁知在查资料的过程中发现有好多关于DOM的概念也是模糊不清,便决定继续延伸 ...