-
virtual:虚方法 使用override进行重写
查看全部 -
事件触发 ,事件发布()
查看全部 -
事 件
事件发布者:通知某件事件发生的,就是发布者
事件订阅者:对某件事件关注的,就是订阅者
事件行为:触发和注册
事件发生时,会通知所有关注该事件的订阅者---调用订阅者(对象)的注册函数【注册,告诉发布者调用哪一个注册函数】
想在事件发生时被通知,必须注册表示关注
事件订阅:
事件名称+=方法1
事件名称-=方法2 【方法可以是,实例方法,静态方法,匿名方法、Lambada表达式】
查看全部 -
运算符
查看全部 -
class Program
{
static void Main(string[] args)
{
Pet d = new Dog();
Cat c = new Cat();
Pet p = new Pet();
p.name = "父亲";
d.name = "大黄";
c.name = "咪咪";
p.dw();
d.dw();
c.dw();
}
}
public class Pet
{
public string name;
public void dw()
{
Console.WriteLine("动物名称"+name);
}
};
public class Dog : Pet
{
new public void dw()
{
Console.WriteLine("狗狗名称" + name);
}
};
public class Cat : Pet
{
};
具体调用那个方法根据赋值对象前的引用对象决定。
查看全部 -
隐藏方法
查看全部 -
这是一堂比较重点的课程,学习后可继续复习
查看全部 -
注意public不要漏掉
查看全部 -
virtual
override
虚方法和多态
查看全部 -
通过new关键字屏蔽基类中的方法,从新定义方法
查看全部 -
自然界一切皆对象,易维护,易开发,易扩展
查看全部 -
封装,集成,多态
查看全部 -
abstract 不能有函数体
查看全部 -
如图屏蔽了pet类printname方法
查看全部 -
隐藏方法 隐藏基类的方法
查看全部 -
namespace projGetMaxScore
{
public class Pet:Object//默认继承Object,可以省略不写
{
public Pet(string name)
{
_name = name;
}
protected string _name;//保护的,派生类才能访问
virtual public void Printname()
{
Console.WriteLine("Pet's name is "+ _name);
}
}
public class Dog:Pet{
public Dog(string name):base(name)//引用基类默认值
{
}
}
public class Cat:Pet {
public Cat(string name):base(name)
{
}
override public void Printname()//隐藏继承方法
{
Console.WriteLine("宠物的名字是 "+ _name);
}
}
class Program
{
static void Main(string[] args)
{
Pet[] pets=new Pet[]{new Dog("jack"),new Cat("tom")};
for(int i=0;i<pets.Length;i++)
pets[i].Printname();
}
}
}查看全部 -
通过指向派生类的基类引用,我们仅仅能访问派生类的基类部分。
Pet cat=new Cat();
cat.PrintName();//调用的是基类中的PrintName方法
但是如果是virtual和override情况下,会先在Pet中看到是虚方法,然后就去派生类中找有没有重写方法,调用重写过的方法查看全部 -
接口
查看全部 -
密闭方法
查看全部 -
为什么需要密闭
查看全部 -
抽象类
查看全部
举报