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 方法不允许重载;
随机推荐
- JSP的笔记
JSP是一种特殊的Servlet,全称是java server page,属于服务器端语言 就JSP和Servle,HTML比较,三者的优缺点简略如下: Servlet: 缺点:不适合作为HTML的响 ...
- CI支持各种文件上传-文件类型(Linux + window)
$mimes = array( 'hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', 'c ...
- HW6.29
public class Solution { public static void main(String[] args) { int count = 0; int[] card = new int ...
- SQL Server Cpu 100% 的常见原因及优化
SQL Server Cpu 100% 的情况并不太常见,一般引起 SQL Server 产生性能问题的,都是 阻塞.连接数.IO 磁盘等.所以,一般SQL Server 的使用率都是比较低的.但是, ...
- Keil µVision4 中出现中文乱码的解决办法
首先得说一下,以前都没有遇到过类似的问题,但是看到有个同学曾经满篇的乱码那叫个心疼. 这里我所说的办法其实只是格式转换的问题,对于其他原因造成的,可能会在以后遇到的时候再来处理了.另外,在将代码文件转 ...
- .net MVC全局定时器执行作业
首先的一个需求是在OA系统中定时跑一些定时作业,例如发放年假等事务,之前的做法是在服务器上加入一个服务,用系统定时作业去跑服务,这样有个问题就是当系统在发布的过程中,有可能忘记启动服务而导致无法定时执 ...
- XML操作之Linq to Xml
需要引用的命名空间: using System.Xml.Linq; 常用的类:XDocument.XElement.XAttribute 创建 XDocument对象. XDocument.Loa ...
- GridView多行标题行、改造标题行、自定义标题行完美版
网上找了个找,最终还是自己做的比较靠谱,道理很简单,直接看代码 代码: /// <summary> /// =================== 两行标题行 ============ ...
- PHP+MySQL开发技术详解—学习笔记
1. PHP is Hypertext Preproocessor. 2. Hello World: <?php Echo ‘Hello World!’; ?> 3. ...
- <meta 标签的详细使用
meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与</head>中,meta 标签的用处很多.meta 的属性有两种:na ...