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

C#面向对象编程

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

最赞回答 / qq_慕侠5280997
我在收看的教程视频是,把代码也给敲出来了,里面有相应的注释,分享一下吧using System;using System.Globalization;using System.Net.Cache;namespace PetShop{    interface ICatchMice //基类中接口的定义    {        void ICatchMice();    }    interface IClimbTree //基类中接口的定义    {        void IClimbTree();  ...

最新回答 / qq_醉听风雨_0
可以隐藏实现,通过f12只能跳转到接口,看不到实现的代码

最新回答 / 慕妹1697591
dog类之前有讲的,你可以回看一下

最新回答 / 慕数据8441107
首先,你要清楚的是,接口声明不包括数据成员,只能包含方法、属性、事件、索引等成员。接口中属性声明比如:int x { get; set; }//声明属性存取规则其中get { return _x; }set { _x=x; },在继承接口的类中实现。###int前不能用修饰符,比如public prodected,接口默认访问级别是public .

最新回答 / 青松_Qson_cn
    abstract public class Pet {        protected string _name;         public Pet(string name) {            _name = name;        }        public void printName() {            Console.WriteLine("Pet name is: "+ _name);        }        // virtual public voi...

最新回答 / qq_慕设计9574980
不同动物的cage的属性不一样,因此类的数据结构就不会一样啊,不一样的话就不能通用一个cage类,每次都需要重新写一个适用不同动物的cage类,你可以写一个cage基本类,包含了他们cage的基本共同属性,但是针对于更加细节的属性就需要继承,因此泛型就有优势了。

最新回答 / qq_慕侠5280997
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp8{    public class Pet    {        public Pet(string name, uint age, string food)        {            _name = name;         ...

最新回答 / weixin_慕码人443546
展示对接口引用作用的说明罢了

最新回答 / 日安因心
之所以会用到default关键字,是因为需要在不知道类型参数为值类型还是引用类型的情况下,为对象实例赋初值。考虑以下代码:class TestDefault<T>    {        public T foo()        {            T t = null; //???            return t;        }    }如果我们用int型来绑定泛型参数,那么T就是int型,那么注释的那一行就变成了 int t = null;显然这是无意义的。为了解决这一...

最新回答 / 慕数据8441107
接口是一种规范,使得别人在实现接口的时候需要完成接口中那未实现的方法,普通类一旦实现接口就必须完成接口内所有未实现的方法,但是可以通过别的方式只去实现部分方法。可以建一个抽象类,让抽象类去实现接口中的方法(在抽象类中,接口中的方法变成非抽象方法),最后让你那个普通类去继承抽象类,这样就可以只实现你想实现的函数方法了。(因为在普通类继承抽象类时,可以只实现抽象类中部分非抽象方法,不需要全部实现,不过抽象类中如果有抽象方法,抽象方法必须实现)还不明白,可以百度一下

最赞回答 / qq灰色记忆
隐藏方法有它的适用场景,比如说某个父类中的方法在子类中不需要了,那么你可以直接给隐藏掉,并没有说一定要在子类中隐藏父类的方法,而是隐藏,隐藏根据实际需要,选择继承、重写或者隐藏。这就和坐公交打卡和手机支付可以同时存在,虽然你平时用不到公交卡,但是你需要用公交卡的时候你可以用。隐藏只是一种继承方式,并不是继承就必须要隐藏,希望你理解

最赞回答 / 眉眉眉
class Pet {  interface Iclimbtree  {   void climbtree();  }  interface Icatchmice  {   void catchmice();  }  public Pet(string name)  {   Name = name;  }  protected string Name;  virtual public void printf()  {   Console.WriteLine(Name);  }    public clas...

最赞回答 / 慕慕0266592
public Dog(string name).base(name)这句话可以理解成,派生类构造函数的参数传进来,丢给base(),基类构造函数拿到这个参数,进行构造;所以不能不写

最赞回答 / 慕UI8373816
 可以的,这么写应该是讲师方便复制,然后直接出结果。

最赞回答 / 慕虎4119789
按照原本的事件发生方式,先定义委托,然后定义事件,再判断事件是否触发(即是否发生),最后再执行订阅或取消订阅事件。前面声明了两个客户,然后有Dog.NewDog += c1.WantDog,这里的意思应该是先判断NewDog是否为空,即商店有没有新狗狗,然后在再根据客户的消息WantADog订阅事件。而第二个注册事件是先判断有没有WantDog(但是老师写事件触发条件时候并没有写客户有没有WantDog,而是写的NewDog!=null)。因为按照逻辑是先看有没有新狗,再看有没有客户想要。而这样改变的话,...
课程须知
1、需要掌握c#基础语法和基本概念 2、建议听课和写代码实践相结合,更好的掌握知识点
老师告诉你能学到什么?
1、通过学习继承和多态,构建对象的森林,减少重复代码 2、学习静态成员静态类,实现对象间的共享资源和扩展非派生类 3、学习接口,可以跨类型地实现对象的统一管理 4、学习操作符重载,大大简化我们自定义对象的相关操作 5、学习泛型,极大地降低了开发的工作量

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消