课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员能够掌握的编程开发方式也在不断的变化,而面向对象就是目前使用范围非常广泛的一种编程方式,下面我们就通过案例分析来了解一下,面向对象的三大特性及访问控制。
面向对象的三大特性是封装、继承、多态。我把它们称为面向对象面试三巨头,因为一旦面试,如果有面向对象的问题绝对会问到这三个特性。这里先简单介绍一下三大特性。
封装:对象的方法实现对外是隐藏的,就像我们在不拆开钢笔之前很难知道钢笔的墨水是怎么流动然后写出字的;
继承:子类天然拥有父类的属性和方法,假如我们还有一只特种钢笔,那么我们可以把这只特种钢笔抽象出的类认为是钢笔的子类,这只特种钢笔跟钢笔一样,可以用来做钢笔能做的事,虽然有时候不好用;
多态:简单来讲就是多种状态,对于面向对象来说,就是方法重写和方法重载。比如说,我们去找领导签字,领导在忙让我们把文件放那边,过一会领导派人送过来签好字的文件。如果领导有多只钢笔,那么领导用哪只笔、在什么时候、用什么姿势对于我们来说就是不确定的状态,这就是多态的一种。
访问控制符
在将三大特性之前,先介绍一下C#的访问控制。C#常用的访问控制分为四种:
private:限定只有同属于一个类的成员才可以访问,如果限定一个类是私有类,那么这个类必须是内部类
protected:限定当前类的成员、子类可以访问,不能用来限定外部类,同private一样,如果限定类是受保护类,这个类必须是内部类
internal(default):默认访问权限,对于类和方法来说,限定同一个DLL可以访问,其他DLL不能访问。区别是类的internal关键字可以省略,方法如果省略访问权限符,则默认是protected
public:公开,所有能引用类的地方都能访问类里的public对象,这是开放的权限。
封装
封装简单来讲就是调用方不知道被调用方的具体实现以及内部机制,就像我们看别人只能看到外表缺看不到器官的运作(当然除非你是医生)。
那么封装有什么好处呢:
对外隐藏实现,防止外部篡改引发安全问题
减少不必要的关联,被调用方需要调用方提供参数,但除此之外调用方只需要静待被调用方返回结果就行
打包一系列的操作,防止中间发生变故
比如说一个钟表,给我们一堆零件,在没有拼接、安装好之前也就是封装好,这个钟表是不能正常使用的。只有我们按照一定逻辑,将零件安装好之后(封装),再装上电池或上发条(调用)钟表才会转起来。
继承
C#的继承是单继承,也就是说一个类只有一个父类,如果不指明父类,那么它的父类就是object。换句话说,object是C#继承体系里的根,也就是所有类的祖先类。
C#的继承用:表示,即classB:A表示B继承A。
多态
多态的实现就是通过类的继承和方法的重载实现的。类的继承主要通过重写父类方法或者覆盖父类方法来实现的,主要关键字就是virtual、override、new。
具体的介绍是:
virtual关键字声明函数为虚函数,意思就是子类可能会重写该方法
override用在子类,用来声明该方法是重写父类的方法
new跟实例化对象的new不同,这个放在方法前的意思是该方法会隐藏父类方法的实现。
类和接口
C#中类和接口的声明方式不同,类用的关键字是class,接口用的是interface。而且类是继承,接口是实现,一个类只能有一个父类,接口可以有多个。
接口需要注意的地方就死,接口所有的方法都是public的,因为接口就是用来定义规范的,所以一旦它的方法访问控制不是public的话,就没什么意义。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。