第三章

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

对于继承:例:

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. 关于hibernate映射过程中的笔记

    MySQL遇到check the manual that corresponds to your MySQL server version for the right syntax错误 You hav ...

  2. 关于在MDK中使用 printf 函数

    microlib 提供了一个有限的 stdio 子系统,它仅支持未缓冲的 stdin.stdout 和 stderr. 这样,即可使用 printf() 来显示应用程序中的诊断消息. 要使用高级 I/ ...

  3. n个筛子的点数

    题目:把n个筛子扔到地上,所有筛子朝上一面的点数之和为s,输入n,打印出s的所有可能的值出现的概率. 分析: 方法1:递归. 要求概率,那么我们首先只需要求出每个s出现的次数/(6^n).怎么求s的次 ...

  4. 菜鸟学习HTML5+CSS3(一)

    主要内容: 1.新的文档类型声明(DTD) 2.新增的HTML5标签 3.删除的HTML标签 4.重新定义的HTML标签 一.新的文档类型声明(DTD)    HTML 5的DTD声明为:<!d ...

  5. mysql日期加减问题

    有一个date列,我想修改下,让该列里每个日期都加上7天,怎么写代码?  update [表名] set date=date_add(date, interval 7 day); SELECT * f ...

  6. POJ1185 - 炮兵阵地(状态压缩DP)

    题目大意 中文的..直接搬过来... 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平 ...

  7. rpi good tutorial

    http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/quick-start/

  8. hdu4612-Warm up(边的双连通分量)

    题意:有n个点,m条边,有重边.现在可以任意在图上添加一条边,求桥的最少数目. 题解:思路就是求出双连通分量之后缩点成为一棵树,然后求出树的直径,连接树的直径就能减少最多的桥. 难点在于:有!重!边! ...

  9. work2

    回答问题: 描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式,  或者其它方法) 让整个程序的架构不至于崩溃的? 答:诚然,问题给出了很多选项如-a,-v,- ...

  10. Spring MVC返回JSON数据

    将一个对象以json数据格式返回前台: @ResponseBody public  User login(User user) { return user; } 在控制器上使用@ResponseBod ...