为了账号安全,请及时绑定邮箱和手机立即绑定

C#面向对象编程

kong66 全栈工程师
难度入门
时长 3小时17分
学习人数
综合评分9.47
105人评价 查看评价
9.7 内容实用
9.2 简洁易懂
9.5 逻辑清晰

最赞回答 / 慕虎5422113
你要想把所有派生类(比如,狗狗、猫)放到一个容器中做处理,那就得用到基类的引用

最新回答 / 史记tan
我觉得理解的非常到位,接头就是实现的一种功能,一个派生类可以添加多个接口,这样对于派生类需要实现的功能来说就很方便了。

最新回答 / 笔墨遥仙
狗是猫吗?猫是狗吗?都不是对吧,所以他们是个不同类型的类,但他们都是pet,宠物,可以在pet当中创建构造方法在子类中,使用base关键字

最赞回答 / xivix
问题1:用基类引用指向派生类时,只能使用基类中的方法。但是,若基类里面有虚方法或抽象方法,且派生类里面也重写了该虚方法或抽象方法,则程序运行时会调用派生类里面重写的方法。问题2:若基类里面有虚方法,派生里面没有用override重写虚方法的话,则会调用基类里面的虚方法,但是意义不大,虚方法的主要作用是体现功能多态性。

最新回答 / qq_烟波蓝_1
有意隐藏的话是需要的,你可以试一下,如果在派生类中声明基类中的数据成员时,会提示让添加new关键字。

最新回答 / 笔墨遥仙
Microsoft Visual studio ,记事本也可以

最新回答 / 温暖而不炙热
1. 参数前置()后置(int)2. 返回值前置int&后置 const int// const是为了防止i++++运算的结果并非预期。3. 函数体后置调用前置  // 这样只需要维护前置运算符的代码即可。步骤:1. 保留旧值到oldvalue; 2. 增加旧值++(*this);3. 返回保留的旧值return oldValue4. 优先用哪个因后置会构造并析构oldValue临时对象,故比前置效率低。即优先用前置++i。UPInt& UPInt::operator++()  {    ...

最新回答 / qq_K_167
楼主楼主,解决没有?无奈了

最新回答 / 慕斯卡2337218
namespace 练习30{/*在类中定义比较函数    如果第一个数大就返回1或者第一个数或者按大小排列    如果相等的返回0    如果第二个数大就返回第二个数或者按大小排列    在main中定义两个数,通过对象调用方法*/    public class Num    {        public virtual int Bijiao(int a, int b)        {            int c = 0;            if (a > b)          ...

最赞回答 / muke_Lyn
1,肯定不能调用了啊,转换完得到的cat已经不是dog了,这个问题其实可以类比值类型,比如:double d=4.3;int i=(int)d;然后i会得到3,但是i不能当做d用?

最赞回答 / 慕村1133551
Dog dog = new Dog();if(A is true) ((base)dog).PrintName();//调用父类方法if(B is true) dog.PrintName();// 调用子类方法

最赞回答 / weibo_忙于升级的迷糊少女_0
因为通过virtual修饰父类方法,使包含子类的父类对象使用子类中重写后的该方法;而用new,子类对象只能使用自身该方法,不能调用父类中该同名方法。

最赞回答 / qq_慕后端1166237
装箱以后是引用类型,存储的是地址,存在堆中。没装箱是值类型,存储的是值,存在栈里
课程须知
1、需要掌握c#基础语法和基本概念 2、建议听课和写代码实践相结合,更好的掌握知识点
老师告诉你能学到什么?
1、通过学习继承和多态,构建对象的森林,减少重复代码 2、学习静态成员静态类,实现对象间的共享资源和扩展非派生类 3、学习接口,可以跨类型地实现对象的统一管理 4、学习操作符重载,大大简化我们自定义对象的相关操作 5、学习泛型,极大地降低了开发的工作量

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消