Unity 面试题——C#基础

1.重载和重写的区别

类型 封装继承、多态所处位置不同 定义式不同 调用方式 多态时机
重载 同类 方法名相同参数列表不同 使用相同对象以不同参数调用 编译时多态
重写 父子类 方法名和参数列表都相同 用不同对象以相同参数调用 运行时多态

2.面向对象的三大特点

  • 封装:封装是将数据和行为相结合,行为约束代码修改数据的程度,如属性。将复杂逻辑包装之后,不需要了解里面如何实现,传入参数就可以得到想要的结果。封装的意义在于保护或者防止代码(数据) 被我们无意中破坏,增强数据的安全性。
  • 继承:继承最主要的作用就是把子类的公共属性集合起来,便于共同管理,使用方便。把子类共同的特性提取设置为父类。继承的传递性:传递机制a>b; b>c;具有a的特性。继承的单根性:不能有多个父类。提高代码重用度, 增强软件可维护性,符合开闭原则。
  • 多态性:同名的方法在不同环境下,自适应的反应出不同得表现,方法动态展示的重要手段。多态就是一个对象多种状态,子类对象可以赋值给父类型的变量。

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

类型 包含 存储 存取 继承 内存释放
值类型 简单类型(整数int、浮点float、boo、char)、 struct、enum 内存栈,实际数据 System.ValueType,隐性继承Object 系统自动
引用类型 string、object、class、 interface、delegate、 array 内存堆,指向存储在内存堆中的数据的指针和引用 System.Object GC

4.请简述private, public, protected, internal的区别

public 对任何类和成员都公开,无限制访问
private 仅对该类公开
protected 对该类和其派生类公开
internal 只能在包含该类的程序集中访问该类

5.请简述ArrayList和List的主要区别

  • ArrayList 不带泛型数据类型丢失,需要装箱拆箱
  • List带泛型数据类型不丢失,List不需要
  • <
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值