Unity之多态

十年热恋 提交于 2019-12-06 14:33:09

本文链接:https://blog.csdn.net/u010718707/article/details/41967149
1.方法隐藏:

如果子类方法的方法名和基类的方法名相同时,系统将隐藏基类同名方法,自动调用子类的同名方法

2.virtual:用在父类中,表示方法可以重写
override:用在子类中,重写父类的方法
例子:

class Father{
public virtual void Print{
Console.WriteLine("父类的Print()");
}
}
class  Son:Father{
public override void Print(){
Console.WriteLine("父类的Print()");
}
}
注:virtual关键字和override关键字是成对出现的,否则是语法错误。

3.父类的引用指向子类的实例

class Son:Father
{
static void Main(string[] args)
{
Father s = new Son();//相当于把子类的值赋给了父类 (子类自动转换为父类)
 父类                子类
                     
s.Print();
Console.ReadLine();
}
}
很好的学习资源哦http://www.gopedu.com/course/explore/U3D


4.多态:(不同对象调用相同的方法,具有不同的行为)

继承:子类使用父类的方法
   (区别)
多态:父类使用子类的方法
例子:
class Father
{
public int getEat(){          
}  
class Son:Father  
{        
public override int getEat()         
{  
            return 0;
}
static void Main (string [] args){
Son s=new Son;
Console.WriteLine(s.getEat());
}  

5.索引器

定义:能够让对象以类似数组的方式来存取

格式:[修饰符]   数据类型   this   [索引类型   index]
              ↕         
    public,protected,private

{
    get{//获得属性的代码}                                                
    set{ //设置属性的代码}
}
1.索引器类型表示该索引器使用哪一类型的索引来存取数组或集合元素,可以是整数,可以是字符串
2.this表示操作本对象的数组或集合成员,可以简单把它理解成索引器的名字,因此索引器不能具有用户定义的名称
例子:
//定义索引器,name 字段的索引值为 0 ,password 字段的索引值为 1
public  string  this [int index]{
get{
if(index==0){
return name;
}
else  if(index==1){
return  password;
}
else  if{
return  null;
}
}
}
set{
if(index==0){
name=value;
}
else  if (index==1){
possword=value;
}
}
索引器的引用:

//声明并实例化这个类
Person p = new Person();
//使用索引器的方式来给类的两个属性赋值
p[0] = "jarod";
p[1] = "123456,./";
//使用类属性取得两个字段信息
print(p.Name + " / " + p.Password);
}
6.析构函数

格式:
~  类名
用法:PersonTest   a=new  PersonTest();
a.null;//对象为空
Gc.Collect//垃圾收集器
更多精彩关注http://unity.gopedu.com
————————————————
版权声明:本文为CSDN博主「u010718707」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010718707/article/details/41967149

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!