C#总结2

第三章

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

对于继承:例:

Public class Father

{
     public void say()

{

  //dosomething

}

Public class Son:Father

{

  Public void say()

{

 //dosomething

}

}

这这里Son就隐藏了Fathersay方法,也就是覆盖了;

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 方法不允许重载;

 

 

转载于:https://www.cnblogs.com/wangheblog/p/3147415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值