2018年-2019年第二学期第五周C#学习个人总结

 

在本周我学习了第五章面向对象高级中的5.3多态,5.3多态中主要包括重写父类方法,多态的实现,base关键字,里氏转换原则,Object类。在重写父类方法中要求当重写父类的方法时,要求子类的方法名,参数类型和参数个数必须与父类方法相同,而且父类方法必须使用virtual关键字修饰,子类方法必须使用override关键字修饰,被virtual关键字修饰的方法被称作虚方法。例如://定义动物叫的方法,使用virtual关键字表示可被子类重写。public virtual void Shout() 

{

Console.WriteLine("动物发出叫声");

}

在多态的实现中要求允许使用一个父类类型的变量来引用一个子类类型的对象。在

base关键字中base关键字可用于1.调用父类的字段和方法base.字段名 base.方法名(参数1,参数2…)2.是调用父类的构造方法。在里氏转换原则中1.子类对象可以直接赋值给父类类型变量2.是将父类类型变量转换为子类类型。在Object类中Object类是所有类的父类。

不能重写静态修饰方法的原因?
static修饰符修饰的方法存储在属于这个类的单独空间里,在类加载的时候就已经存在了,它是存在于这个类文件的,是全局的,所以对于static修饰的方法或变量应该用类名来引用。而重写是体现在对象上,当new一个子类对象时,父类中被重写的方法将不会在对象中出现了,而static类型的将会全局存在,无法重写。

posted @ 2019-04-14 11:27  誰与争锋  阅读(121)  评论(0编辑  收藏  举报