类就是一个封装体
Vector3 3维类
需要定义三个变量 float x y z
类的封装
①
封装的过程
这是在c#中 如果unity则不需要封装可直接定义
②
对参数的封装,当一个函数包含多个参数时,可以将多个参数定义在一个类中,这样直接调用这个对象就可以调用多个参数(这样的类仅仅为了封装代码,不是现实物体的对象)
③ 将一段代码封装到一个方法中,为了便于多次使用
④程序集 一个项目就相当于一个程序集
(using System.IO就是一个用于文件输入输出的程序集)
⑤方法的重载 名字相同方法体不同
一层一层向上封装 目的是为了增加代码的重用性
继承:
继承的目的也是为了重用性
不能继承一个private 的类
如果dog继承animal 如果调用dog初始化 则会先调用父类之后在调用自身函数
如果自己写了一个有参的构造方法后 最好在写一个无参构造方法 因为继承的时候会调用这个类的构造方法,如果没有那么就会报错。
但是如果在子类中想要明确的调用某个带参的构造方法,那么 使用以上:base(参数);就可以如果参数位置不写则代表调用无参数的构造方法。
单继承:指只能继承一个类
如果没有继承类 那么他直接或间接的继承object类
多态
①运算符中是在继承关系中的应用 如果没有继承关系就没有用
② 判断能够转换成功
dog和cat是两个继承animal的两个类
使用 is 会返回一个bool变量的值用于判断a1是不是可以转成animal类型
③进行转换
④拓展性和差异性
同一个变量由于指向的对象不一样,所以调用的方法一样 可是输出的不一样,使用父类virtual和子类中用override进行重写进行覆盖。即将父类中的某个方法在子类中重写
在原有代码的基础上增加了一些功能