本篇文章扣丁学堂Android培训小编给小伙伴们分享一下C#面试时常常会遇到的C#面试题汇总及答案,希望对面试Android开发工程师的小伙伴有所帮助。
1、请简略描述重载和重写的区别?
答:方法重载提供了一个相同的方法但是方法签名的参数不同的调用的实现。
重写提供了子类中改变父类方法行为的实现。
2、C#中类是否支持多继承?请说明原因。
答:不支持,需要用接口来实现多继承。
3、我们都知道一个类可以有多个构造函数,并且C#会在我们创建类的时候默认的提供一个无参的构造函数,当我实现了另外一个有参数的构造函数的时候,我还能调用无参数的构造函数吗?请说明原因。
答:不能,因为一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要自己手动写入一个无参数的构造函数。
4、const和readonly有什么区别?
答:const关键字用来声明编译时的常量
readonly用来声明运行时的常量
5、请问能设置类A可被继承,但类A中的某个方法不能被重写吗?
答:能,将类A的修饰符标记为public、标记类A中的不允许重写的方法为sealed
sealed关键字不仅可以限制类,也可以限制方法。
6、什么时候必须声明一个类为抽象类?
(1)当这个类中有抽象方法的时候,必须声明类为抽象类
(2)该类没有完全实现父类的抽象方法时,也需要声明为抽象类
7、类的私有成员会被子类继承吗?请说明原因。
答:会被子类继承,但是不能被访问。所以看上去是不能被继承的,实际上确实被继承了。
8、接口和抽象类的区别是什么?
答:接口中所有的方法都不能有实现,并且不能指定方法的修饰符抽象类中可以有方法的实现,也可以指定方法的访问修饰符第一个继承接口的类必须实现接口里的所有方法,而抽象类中抽象方法的实现是由第一个非抽象的派生类来实现。
想要了解更多关于C#方面内容的小伙伴,请关注扣丁学堂Android培训官网、微信等平台,扣丁学堂IT职业在线学习教育有专业的Android讲师为您指导,此外扣丁学堂老师精心推出的Android视频教程定能让你快速掌握Android从入门到精通开发实战技能。
有疑问加站长微信联系(非本文作者)