本文最后更新于 137 天前,其中的信息可能已经有所发展或是发生改变。
虚方法 | 抽象方法 |
---|---|
用 virtual 修饰 | 用 abstract 修饰 |
要有方法体 | 不允许有方法体 |
可以被子类 override | 必须被子类 override |
除了密封类都可以写 | 只能在抽象类中 |
虚方法:
用virtual修饰的方法叫做虚方法
虚方法可以在子类中通过override关键字来重写
常见的虚方法:ToString() Equals
通俗描述:
当有子类继承了的这个类,可以重写这个虚方法,将里面的方法体全部改变,符合自己的行为
比如父类是 动物, 动物有一个方法叫, 然后有一个子类 鸟 继承了 动物,然后重写了方法 叫声可以不一样
例如:
class People{
public String Name {set;get;}
public Gender gender {set;get;}
public int Age {set;get;}
publice virtual String PeopHi(){
return Console.WriteLine("哈喽,大家好,我叫{0},性别是{1},我今年{2}岁了",Name,gender.Age);
}
}
class Teacher:People
{
public int Year {set;get;}
public decimal Salary {set;get;}
public override String PropHi(){
return Console.WriteLine("大家好,我叫{0},我是{1}生,我今年{2}岁了,现在工资是{4}",Name,gender,Age,Year,Salary);
}
}
抽象方法:
抽象类与抽象方法由abstract修饰
abstract的使用注意
–抽象方法没有方法体
–抽象成员只能存在于抽象类中
–抽象类可以有非抽象成员
–抽象类的派生类必须实现抽象方法体
–抽象类只能用作基类,无法实例化
例如:
abstract class Person{
public String Name {set;get;}
public int Age {set;get;}
abstract public void SayHi();
}
class chinese:Person{
public override void SayHI(){
Console.WriteLine();
}
}