面向对象-多态
文章目录
1、Vob
1、多态的概念
多态:多种状态
让继承同一父类的子类们在执行相同方法时有不同的表现(状态)
主要目的
同一父类的对象,执行相同的行为(方法)有不同的表现
解决问题
让同一个对象有唯一行为的特征
2、多态的实现
编译时多态:函数重载
运行时多态:
vob、抽象函数、接口
v:virtual(虚函数) //可以被子类重新
o:override(重写) //重写虚函数
b:base(父类) //代表父类,可以通过base来保留父类的行为
GameObject p = new Player("玩家1");
p.Atk();
(p as Player).Atk();
class GameObject
{
public string name;
public GameObject(string name)
{
this.name = name;
}
public virtual void Atk()
{
Console.WriteLine("游戏对象进行攻击");
}
}
class Player : GameObject
{
public Player(string name) : base(name)
{
}
public override void Atk()
{
base.Atk();//保留父类atk方法
Console.WriteLine("玩家对象进行攻击");
}
}
2、抽象类和抽象方法
1、抽象类
概念
被abstract修饰的类
特点
1、不能被实例化
2、可以包含抽象方法
3、继承抽象类必须重新其抽象方法
2、抽象方法
又叫纯虚方法
用abstract关键字修饰的方法
特点
1、只能在抽象类中声明
2、没有方法体
3、不能私有
4、继承后必须实现,用over