C#总结2
第三章
对于继承:继承是根据父类创建新子类的过程;
对于继承:例:
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 方法不允许重载;
随机推荐
- css定位方式
CSS表达式 匹配元素说明 xpath * 匹配任何元素 //* div 标签 //div div#eleID by ID //div[@id='eleID'] div.class by clas ...
- 【原】Storm及特点
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- Newtonsoft.Json.dll使用
1:Newtonsoft.Json.dll 下载 http://json.codeplex.com/ 2:解析JSON字符窜 方法1: using Newtonsoft.Json; using Sy ...
- 【转载】free查看内存
http://blog.csdn.net/hylongsuny/article/details/7742995 free 命令相对于top 提供了更简洁的查看系统内存使用情况:$ free ...
- Poj2002 Squares
题意描述:有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少.相同的四个点,不同顺序构成的正方形视为同一正方形. 思路变迁: 1.最简单的方法,直接暴力搜索,即依次取四个顶点,根据其坐标 ...
- [OC Foundation框架 - 3] 指向指针的指针
使用函数改变NSString void changeStr2(NSString **str3) { *str3 = "; } int main(int argc, const char * ...
- Delphi- 一些H8记录
CheckOrder方法写在uDataModConn类里.
- MySQL 索引、视图、DML
1.索引 索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度, 索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作. 索引是数据库的一个对象, ...
- Swift基本语法以及与OC的比较
一.注释: 1.单行注释和OC一致. 2.块注释中有与OC不同点:可以嵌套注释 二.常量和变量: 1.常量:初始化后可读不可写 let 2.变量:初始化后可读可写 var //不需要指定类型,系统会自 ...
- struts2—拦截器
在Struts2中,如果用户没有指定执行哪些拦截器,struts2有一个默认执行的栈,defaultStack; 一旦如果用户有指定执行哪些拦截器,默认的拦截器栈就不会被执行 拦截器配置举例(stru ...