1、抽象类
abstract class people //抽象类
{
public abstract void SayHi();//抽象方法
}
class Student:people //继承抽象类people
{
public override void SayHi() //override重写抽象方法
{
Console.WriteLine("你好我是学生");
}
}
测试代码:
people p = new Student();
p.SayHi(); //输出 "你好我是学生"
2、虚方法:
实现方式跟抽象类一样,不同点:
(1)抽象类中的抽象方法不可在本类实现,而虚方法可以实现。
(2)抽象方法必须定义在抽象类中,而虚方法不需要。
(3)抽象类的子类必须实现其抽象方法,而虚方法可以选择实现或不实现。
共同点:子类中都使用override关键字重写父类方法实现多态。
题外话:C++的虚函数跟虚方法类似,但C++的多态中,对父类的虚方法重写无需使用override关键字。
3、接口:
创建了一个接口类:IWeapon
public interface IWeapon
{
void Fire();
}
public class Sword : IWeapon
{
public void Fire()
{
Console.WriteLine("用剑攻击");
}
}
测试代码:
IWeapon weapon = new Sword() ;
weapon .Fire(); //输出“用剑攻击”