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

C#面向对象编程

kong66 全栈工程师
难度入门
时长 3小时17分
学习人数
综合评分9.47
105人评价 查看评价
9.7 内容实用
9.2 简洁易懂
9.5 逻辑清晰
@慕圣1119382 public class Labrador:Dog,IDogLearn<SitDogCmd>是拉布拉多继承dog类,实现学习技能的接口
static class PetGuide //定义一个用来扩展Dog类方法的静态类
{
//给Dog类扩展一个怎样喂食的方法
static public void HowToFreedDog(this Dog dog)
{
Console.WriteLine("播放如何喂养一直狗狗的视频");
}
}

Dog dog=new Dog(); //Dog类中没有HowToFreedDog();方法
dog.HowToFreedDog(); //扩展之后Dog类可以直接调用这个方法,好像Dog类中有这个方法一样
如果一个类不能修改源代码,也无法派生一个子类,但是又要为这个增加一个新的方法,这种情况就可以使用静态类进行扩展
1.new关键字和virtual关键字都可以使子类去写自己的方法(抒发个性),
2.但是new是隐藏父类方法,override则是重载父类方法
比如:实例化对象是使用父类的引用时, PET pet = new Dog();那么所有的对象都会按照父类的方法来运行。(这样就无法发挥自己的个性了)
而在父类中使用virtual关键字声明的方法,使用override重写这个方法时,即便实例化对象是使用父类的引用,调用方法的时候还是会执行自己重写的方法
虚方法这一特点就正好诠释了多态的作用:通过指向子类的父类引用,调用虚函数(或方法)会根据父类引用所指向的派生类的实际类型,调用派生类中的同名函数
老师多补补吧,太虚了,听着难受
看不大懂了。。。
很不错,思路很清晰!
听得好难受,老师是有多虚啊。。
var类型是不是相当于java 中的object类型
@weixin_H_RS: 你的语句括号中是this Dog dog 而不是this Dog.dog,你多了个点。
只能说这是一笔带过,太浅显了
基础是会了,要是能多提到什么情况下用这些知识就好了。
免费的就应该点赞,即使有一些讲的不那么全面。作为学生,老师讲了,网络上在查下也可以了。总之,自己勤奋点就可以了。
接口是引用类型,接口作用应该是抽象重用。如果某个类实现某个接口,那另外的类如果要用该方法,只需要调用该接口就可以了。例如有个抓老鼠接口,然后猫类中实现了,那么狗类就可以直接使用该接口。但顺序必须是排在猫类后面,因为抓老鼠是猫类实现的。
确实讲的不清楚,我知道这样调用节省,但我为什么要这样用,什么场景适合用,就不知道了。不过看在免费份上,必须赞一个?
课程须知
1、需要掌握c#基础语法和基本概念 2、建议听课和写代码实践相结合,更好的掌握知识点
老师告诉你能学到什么?
1、通过学习继承和多态,构建对象的森林,减少重复代码 2、学习静态成员静态类,实现对象间的共享资源和扩展非派生类 3、学习接口,可以跨类型地实现对象的统一管理 4、学习操作符重载,大大简化我们自定义对象的相关操作 5、学习泛型,极大地降低了开发的工作量

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消