您现在所在的位置:首页 >学习资源 > Unity游戏/VR/AR入门教材 > VR开发入门教程23:面向对象之继承

VR开发入门教程23:面向对象之继承

来源:奇酷教育 发表于:

继承面向对象中的两个重要概念:抽象和分类。抽象和分类是人们认识世界的基本方法:抽象是将现实世界中客观存在的事务映射到意识中的一种方

继承
面向对象中的两个重要概念:抽象和分类。
抽象和分类是人们认识世界的基本方法:
抽象是将现实世界中客观存在的事务映射到意识中的一种方法。
分类是指确定这些抽象到意识中的概念之间的关系。
这些关系的基本形式包括一般到特殊和整体与局部。
 
在面向对象中,一般到特殊的关系用继承(Inheritance)表示;整体与局部的关系用组合(composition)表示。
继承的概念
继承是由已有的类创建新类的机制。
由继承得到的类称为子类(派生类),被继承的类称为父类(超类)(基类)
 
继承的原则
子类继承父类的成员变量和成员方法
子类不继承父类的构造方法,能够继承父类的析构方法
子类不能删除父类的成员,但可以重定义父类成员
子类可以增加自己的成员
 
继承的作用
实现软件可重用的重要方式
增强软件可扩充性
提高软件的可维护性
继承定义
定义继承的类
 
声明子类
[<修饰符>] class<子类名> :(extends) <基类名>
Object类
C#语言中所有的类都是Object的直接或间接子类。
子类对象对父类成员的访问权限:
子类对父类的私有成员(private)没有访问权限
子类对父类的公有成员(public)和保护成员(protected)和内部成员(internal)具有访问权限
隐藏
子类中可定义与父类成员同名的成员
此时父类的成员被隐藏
 
注意:程序中会出现警告 警告不影响执行
消除警告的方法 在隐藏的属性或方法上追加new关键字
Base
base用来引用当前对象的父类,用base可以实现对父类成员的访问。
访问父类被隐藏的成员变量,如:
   base.variable;
调用父类中被覆盖的方法,如:
   base.Method([paramlist]);
调用父类的构造函数,如:
   :base([paramlist]);
 
注意:base维系了整个继承关系
向上转型
子类和父类具有is a的关系,例如对于父类“人”和子类“学生”,我们可以说“学生”是“人”。因此,可以使用父类的引用指代子类的实例,这种情况被称为Upcasting。上转型对象可以访问子类继承或覆盖的成员;不能访问子类中新增的成员。上转型对象可以被重新赋值为子类实例,这时它又重新可以访问子类中新增成员。