关键字

我们使用继承,也要允许派生类中的某些属性或方法有与基类不同的行为,我们想‘重写’它,但基类同意才能重写,否则就会发生命名冲突了。

1。Overridable

在基类中用Overridable修饰符来标识允许基类中的属性或方法在其派生类中被重写,没有标识的其实就是默认为有NotOverridable修饰符来隐式地标识,用于提醒编译器该属性或方法不可被重写;

2。Overridable

然后在派生类重写时,我们就用Overrides修饰符来标识哪些是重写自基类中定义的 Overridable 属性或方法。”

在派生类中重写基类的函数,其函数的返回值只是派生类的返回值,而不是基类的返回值,基类的值则被重写过了。如基类的函数gety的返回值为4,而派生类中gety的返回值为14,当程序运行后,实例化对象,例如obj.gety=14.

3。New

new构造函数一般用于打开文件、连接到数据库、初始化变量以及处理任何需要在可使用对象前完成的其他任务。我们必须在Sub New 构造函数中的第一行代码使用语句 MyBase.New(),来调用类层次结构中该类的基类的构造函数,以获得基类的性质。

4.Sub Finalize

析构则是在Sub Finalize中执行完对派生类的的清理任务,如保存状态信息、关闭文件和与数据库的连接,以及执行在释放对象前必须完成的其他任务之后,在析构函数的最后一句使用语句 MyBase.Finalize() 显式调用其基类的 Sub Finalize 方法,以析构MyBase.New()构造的内容。

5.

派生类的构造函数

Sub New()

       MyBase.New() 注意:这句话要放在sub内的第一句,调用基类的构造函数

       Console.WriteLine("派生类的构造")

    End Sub

派生类的析构函数

Protected Overrides Sub Finalize()

       Console.WriteLine("派生类的析构")

       MyBase.Finalize()

    End Sub

从上面的例子知道:1。如果基类没有构造函数方法或者有一个不带参数的sub new过程,就不需要严格地为派生类定义一个显示构造函数。也就是不用写sub new,就可以直接用new方法来创建实例对象。

上面当基类没有隐式或者显式包括一个无参数的构造函数方法时,派生类必须包含一个构造函数方法,并且改方法的第一个可执行的行必须时对基类构造函数的调用,如上面的 MyBase.New() 。

4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值