第三章

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

对于继承:例:

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. unity3d切换场景时,背景音乐保持播放

    首先创建两个场景: One,Two 再创建一个空游戏对象: GameObject,并添加AudioSource组件,把要播放的音乐拖放进去 给GameObject添加脚本AlwayAudio,代码如下 ...

  2. as3 工具类分享 CookieMgr

    今天分享一个工具类 CookieMgr,功能就是读取和写入 SharedObject 对象.很简单,都是静态方法,就不多说了 package org.polarbear.core { import f ...

  3. uva 10256 The Great Divide

    题意:给定两个点集,一个红点集,另一个蓝点集,询问,能否找到一条直线能,使得任取一个红点和蓝点都在直线异侧. 思路:划分成两个凸包,一个红包,一个蓝包.两个凸包不相交不重合. 1.任取一个凸包中的点不 ...

  4. 相当管用了 mstha插件

    http://www.i-magical.com/2010/04/feizhuliu-kill-virus-mshta-exe/ 非主流杀毒 – mshta.exe Vincent | Apr 23, ...

  5. A Tour of Go Switch

    You probably knew what switch was going to look like. A case body breaks automatically, unless it en ...

  6. 第九章、文件与文件系统的压缩与打包 Linux 系统常见的压缩命令

    Linux 系统常见的压缩命令: 在Linux中,压缩文件的扩展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』 Linux 支持的压缩命令非常多,且不同 ...

  7. 转载 ASP.NET中如何取得Request URL的各个部分

    转载原地址 http://blog.miniasp.com/post/2008/02/10/How-Do-I-Get-Paths-and-URL-fragments-from-the-HttpRequ ...

  8. JavaScript Source Map 详解

    源码地址: http://www.ruanyifeng.com/blog/2013/01/javascript_source_map.html 上周,jQuery 1.9发布. 这是2.0版之前的最后 ...

  9. struts中的helloword(1)

    注:文章中的所有图片均在附件中明白表明   首先要安装jdk1.6以及tomcat6和myeclipse 对于这些配置的安装 这里不再细细说明  其次是下载struts2  第一步:去struts21 ...

  10. PHP strlen() 函数

    定义和用法 strlen() 函数返回字符串的长度. 语法 strlen(string) 参数 描述 string 必需.规定要检查的字符串. 例子 <?php echo strlen(&quo ...