Unity系统班之第九课

2021-04-02 16:59发布

一、构造函数

 一个类创建时默认会添加一个无参的构造方法,该方法是隐藏的,当对一个类实例化时会调用该默认的构造方法
 注意:
 1.构造方法没有返回值,并且方法名称和类名保持一致.也不能有void关键字
 2.如果类中没有显示的构造方法,那么系统会提供默认的无参构造,只要显示地写出一个构造方法,系统就不会提供默认的无参构造.
 3.构造方法只会在实例化对象时调用一次,调用的同时可以对字段进行进行初始化.
 

类的构造函数是类的一个特殊成员函数,当创建类的新对象时执行.
People p = new People();

Line line = new Line(10.0);//设置线条长度
Console.WriteLine("线条长度:{0}",line.Length);
double b=line.LengthFuction(6.0);
Console.WriteLine("线条的长度:{0}",b);


二、封装

  1.  把类中的字段设置为私有.

    2.为私有的字段添加属性
    3.通过构造方法,对私有的字段进行初始化

三、继承

 class   子类类名:父类类名
{
    子类新增加的成员;
 }
被继承的类叫做父类或者基类,自己叫做基类或者派生类

在创建子类的实例时,会默认调用父类的无参构造方法,然后在调用子类的构造方法;如果想要调用父类其他带参数的构造函数,需要在子类构造方法上加base

一个类可以派生自多个类或接口,这意味着它可以从多个基类或接口继承数据和函数
派生类继承了基类的成员变量和成员方法,因此父类对象应在子类对象之前被创建,可以在成员初始化列表中进行父类的初始化.
多重继承指的是一个类别可以同时从多于一个父类继承行为和特征的功能.与单一继承相对,单一继承只可以继承一个父类
C#不支持多重继承,但是可以使用接口来实现多重继承

base其实最大的使用地方在面相对性开发的多态性上,base可以完成创建派生类实例时调用其基类构造函数或调用基类上已被其他地方重写的方法

关于base
base关键字用于从派生类中访问基类的成员:
调用基类已被其他地方重写的方法.
指定创建派生类实例时调用的基类构造函数
基类访问只能在构造函数,实例方法或实例属性访问器中进行

object类是所有类的基类

四、里氏替换

里氏转换是描述类与类之间的关系,如果两个类没有继承关系,那么也就没有里氏转换
里氏转换第一原则:可以将子类对象直接赋值给父类对象
里氏转换的第二原则:父类的对象可以通过强制类型转换的方式赋值给子类对象

在将父类强制转为子类对象时,.一般需要先使用is关键字来判断是否为父类类型
as关键字  如果有个对象可以转成目标类型那么直接转换,不能转成目标类型将null值赋给目标对象


五、多态

 当父类对象指向了子类对象,在调用父类中的方法时,实际执行的是子类中的方法.
 1.存在继承关系
 2.需要子类重写父类中的虚方法,虚方法使用virtual关键字修饰,重写方法使用override关键字修饰,重写的方法和虚方法名字需要保持一致
 3.子类可以不重写父类中的虚方法,但是如果子类要重写父类中某一个方法的话,父类中的该方法必须是虚方法或者抽象方法或者该方法重写过其它方法.

CLR(Common Language Runtime)公共语言运行库:运行时的环境,它负责资源管理(内存分配和垃圾收集等)

静态多态性:
在编译时,函数和对象的连接机制被称为早期绑定,也称为静态绑定,C#提供了两种技术来实现静态多态性,分别为:函数重载,运算符


六、密封

sealed  修饰符用于类,表示该类为密封类,不能被继承


心得体会:

          暂无!!!