面向对象、构造函数和里氏转换

面向对象

又要开始今天的知识点储备了。。。

简单讲讲面向对象、构造函数和里氏转换0.0

面向对象 这个东西其实很好理解,先说说什么是面向对象,对于程序猿来说,万物皆对象ヽ(ー_ー)ノ哈哈哈…
虽然这样说真的很抽象,但是不得不说,对象这个东西真的也是让好多人新手很头痛,不知道他到底该怎么理解,下面就是我对他的解释:

面向对象
是一种抽象的程序设计思想
先有面向这个对象的过程,再有的面向对象

而且

他也有很多优点:

  • 具有更高的灵活性
  • 重用性
  • 扩展性

当然

我也知道这么说实在是太抽象了,所以我准备举个小栗子(●—●)
好比如说,咱们身边有很多的物品,随便说一样吧,如:杯子,鼠标,纸巾什么的(σ゚∀゚)σ…:*☆哎哟不错哦
先把杯子拿出来开刀吧o((⊙﹏⊙))o
杯子有什么价值?用途是什么?
杯子有他的价格,重量,材质,配色什么的一堆堆的…这是个是他的价值对吧,那接下来就是它是用来干什么的,和杯子要被使用的对象是谁?这个就是对象的一种解释。
下面是个代码似的解释:
杯子{有什么?:价格,重量,材质,配色等等…用途?只能是被使用(参数:用的对象是谁?){}}

还有

对象是设计一种思想,是对现实或想象的单位映射 Σσ(・Д・;)我我我什么都没做!!!

接下来

构造函数

首先提一个疑问?什么是构造函数?
答案就是:构造对象使用的方法。

作用:

  • 构造类的方法(在创建对象时)
  • 创建对象的时候会调用构造函数
  • 创建对象,作用是初始化类的成员
  • 存在一个默认无参构造函数
  • 只要写了构造函数,就可以替代默认构造函数

记住

很重要的!一定是先调用父类在调用子类的构造函数
还有就是:

  • 1.无参的构造函数调用时看不见
  • 2.Base只能调用父类的公开成员,受保护的,internal内部的
  • 3.protected internal 受保护的内部的
  • 4.internal 只能本程序及访问,添加引用都不可以
  • 5.protected 不可以作为类的访问修饰符,子类可以访问父类受保护成员,其他人 一概不行
  • 6.protected internal 只能本程序及的父子类,可以使用,其他人一概不许 创造子类对象必须调用父类的构造函数 Base在子类 调用父类构造函数时,把参数一并传给父类

重点来了!!!

里氏转换(is as)

is主要是用来判断类型

as代表他是什么类型

他的原则是什么呢?标准答案嗷:所有基类可以出现的地方,子类一定出现
还有就是必须是有继承关系这是实现里氏转换的前提

在这里插入图片描述
子类类型的子类对象,可以转换为父类类型。
override重写方法,不管是子类对象还是子类对象转换成父类类型时,所调用的方法都是子类的 。
一开始声明的类型
new关键字,子类对象如果转换成父类类型所调用的方法,根据New关键字无法覆盖。类型决定调用方法

撤退!实在是写不下去了Σσ(・Д・;)我我我什么都没做!!! 写的还是比较辣鸡的,望各位大佬,可以提携提携小弟,毕竟新手不是太懂,海涵啊海涵啊~~~(╹▽╹)大佬我们做朋友好不好

猜你喜欢

转载自blog.csdn.net/QJH_12138/article/details/89387452