Sealed,new,virtual,abstract与override的区别

1.       Sealed:

a)         密封类不能被继承。

b)         密封方法可以重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或者属性时,sealed修饰符必须始终与Override一起使用。

2.       New:

a)         显示隐藏从基类继承的成员。

3.       Virtual:

a)         用于修改方法或者属性的说明,在这种情况下,方法或者属性被称作虚成员,虚成员的实现可由派生类的重写成员更改。---为了子孙后代。

4.       Abstract:可以修饰类,方法,属性,索引器以及事件一起使用。

a)         抽象类的一些特点

                                       i.              抽象类不能被实例化。

                                     ii.              抽象类可以包括抽象方法或者抽象访问器。

                                    iii.              不能用sealed修饰符修改抽象类,这意味着该类不能被继承。

                                    iv.              从抽象类派生的非抽象类必须包括继承的所有的抽象方法或者抽象访问器的实现。

                                     v.              在方法或者属性的声明中使用abstract修饰符以指示此方法或者属性不包含实现。

b)         抽象方法具有以下一些特点

                                       i.              抽象方法是隐式的virtual方法

                                     ii.              只允许在抽象类中使用抽象方法声明。

                                    iii.              抽象方法不提供实际的实现,所以没有方法体。

                                    iv.              实现由overriding方法提供,它是非抽象类的成员。

                                     v.              不能结合static或者Virtual使用。

                                    vi.              在派生类中,通过包括override修饰符的属性声明可以重写抽象的继承特性。

c)         Override:修饰方法,属性,索引器或事件,主要提供派生类对基类方法的实现,覆盖上面的abstract,virtual两种关键字修饰的成员。

                                       i.              Override:好比不用祖宗的那一套,而且还自己创一套新功夫代替祖宗那一套。

                                     ii.              New的区别:

                  1.         overrid修饰的基类方法必须是virtual或者抽象的,而new不必要。

                            2.用一个基类对象来访问基类的virtual方法,override方法会被访问到,而new重写的派生类的方法不会被访问到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值