C#和Unity总结Day01

1>.重载和重写的区别:

(1).所处位置不同,重载在同类中,重写在父子类中

(2).定义方式不同,重载方法名相同,参数列表不同,重写方法名和参数列表相同

(3).调用方式不同,重载使用相同对象以不同参数调用,重写用不同对象以相同参数调用

(4).多态时机不同,重载是编译时多态,重写是运行时多态

重载:方法名相同,但参数不同,参数的个数不同或者类型不同,满足一个就可以(和返回值无关,和参数的类型和个数无关)

重写:父类方法修改它的实现方式或者说在子类中对它进行重新编写

那么为何要重写父类的方法?

通常,子类继承父类的方法,在调用对象继承方法的时候,调用和执行的是父类的实现,但是,有时候需要对子类中的继承方法有不同的实现方式,重写用到override关键字,且父类中要被重写的方法必须声明virtual或者是abstract类型

 

2>.面向对象的三大特点

(1).继承:有两种类型,实现继承和接口继承

实现继承:表示一个类型派生于基类型,它拥有该基类型的所有成员字段和函数.在实现继承中,派生类型采用基类型的每个函数的实现代码,除非在派生类型的定义中指定某个函数的实现代码.在需要给现有的类型添加功能,或许多相关的类型共享一组重要的公共功能时.可以使用这种类型的继承.

接口继承:表示一个类型值继承了函数的签名,没有继承任何的代码,在需要制定该类型具有某些可用的特性时,最好使用这种类型的继承.

(提高代码重用度,增强软件可维护性的重要手段,符合开闭原则)

(2).封装:被定义为"把一个或多个项目在一个物理的或者逻辑的包中".在面向对象程序设计方法论中,封装是为防止对实现细节访问.

访问修饰符:

public:所有对象都可以访问

private:对象本身在对象内部可以访问

protected:只有该类对象及其子类对象可以访问

internal:同一个程序集的对象可以访问

(封装是将数据和行为相结合,通过行为约束代码修改数据的程度,增强数据的安全性,属性是C#封装实现的最好体现)

(3).多态:多态性意味着有多重形式,在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"

多态性可能是静态的或动态的

(多态性是指同名的方法在不同环境下,自适应的的反应出不同得表现,是方法动态展示的重要手段)

 

 

3>.简述值类型和引用类型有什么区别

(1)值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址

(2)值类型存取快,引用类型存取慢

(3)值类型表示实际数据,引用类型是表示存储在内存堆中的数据的指针和引用

(4)栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放

(5)值类型继承自System.ValueType,引用类型继承自System.Object

 

posted @ 2018-11-27 19:22  0ooooooooooooooooo0  阅读(171)  评论(0编辑  收藏  举报