abstract
1、只能用在抽象类中修饰
2、抽象方法是没有实现的
public abstract void Fly();
但是继承的子类可以实现
public override void Fly(){ Debug.WriteLine("这是子类,重写了Fly方法");}
3、抽象类不能被实例化,只能被继承
4、抽象方法子类必须实现。
5、抽象类里面除了可以有抽象方法和抽象属性以外,也可以有普通的方法和普通属性,也可以用virtual修饰。
6、抽象类的构造函数可以省略,编译器会自动加上,但是不能是一个抽象方法,而只能是一个普通的构造函数。
小结:抽象类不可以直接实例化,他可以有n个抽象方法、属性也可以包含m个普通方法、属性,抽象方法子类必须实现。
virtual
1、声明了virtual的方法无需去改动类的声明,他只在此方法上起到影响。
2、只有virtual的方法可以被子类override。
3、子类可以不ouverride父类的virtual方法,这种情况下他就像普通的父类方法一样。
小结:virtual关键字就是告诉子类,此方法可以被override,但非强制。
本文深入探讨了面向对象编程中的抽象类与抽象方法概念,解释了它们如何在类继承中发挥作用,以及与虚方法的区别。重点讲解了抽象类不可实例化、抽象方法必须在子类中实现的特点,同时对比了虚方法的非强制覆盖特性。
1195

被折叠的 条评论
为什么被折叠?



