C#中的接口、继承、多态、重写、虚方法、抽象方法&抽象类、密封类

接口 interface

接口里面规定了一些规则、方法,但是接口不提供默认实现。(C#3.0之后,接口内也可以提供默认实现)

继承某个接口的话就要实现该接口里的所有方法。

继承 :

类的定义处,用冒号加父类的形式表示类的继承。子类可以使用父类里面的非private标记的方法和属性,也可以重写父类带override/virtual或父类所继承的接口的方法。

子类可以拥有只属于自己(不属于父类)的方法和属性。静态类或者静态成员无法继承或重写。

eg. ChildClassName : ParentClassName

多态

子类可以隐式转换成父类,由子类变换得到的父类可以显式重新转换为对应的子类。子类转换为父类后,子类原有属性和方法不会丢失,只是无法访问。

重写 overwrite

子类想要重新实现一个父类里面已经实现了的方法,就用overwrite一个同名方法,然后在{ }里面实现,如果需要调用父类中被override的方法,需要用"base.方法名"。

虚方法 virtual

类对于有virtual方法提供默认的实现,并且允许子类重写。(有点类似于上文已经提供了默认实现的接口)

换句话说,父类中的虚方法一定要有默认实现,子类可以选择是否重写。

抽象方法&抽象类 abstract

当你不想实现某些方法的时候可以用abstract把方法设置为抽象方法,同时要把该方法所在的类设置为抽象类(因为抽象方法必须存在于抽象类中)。

那么抽象类中有两种成员:已经实现了的方法等成员、没有实现的方法(即抽象方法)。

所以抽象类不能实例化。

抽象类本身不可以实例化,只能通过某个继承该抽象类的非抽象子类来实例化,再隐式转化成该抽象类,该抽象类才得以运用。

密封类 sealed

如果不想自己写的类被别人继承,就用sealed规定成密封类。

 

C#五个修饰符的权限

修饰符          级别    适用成员        解释

public           公开    类和类成员                 对访问成员没有级别限制

private            私有    类成员                   只能在类的内部访问

protected          受保护的     类成员                      在类的内部或者在派生类中访问,不管该类和派生类是不是在同一程序集中

internal           内部的      类和类成员                    只能在同一程序集(Assembly)中访问,类默认是internal

protected internal 受保护的内部  类成员                                 如果是继承关系,不管是不是在同一程序集中都可以访问;如果不是继承关系只能在同一程序集中访问

C#权限的详细介绍可以看:https://www.cnblogs.com/lip-blog/p/11844228.html

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值