C#高级进阶-[抽象类]方法
2018-03-13 本文已影响4人
xzhuan
Aitin原创稿件,转载请注明出处!
C#语法进阶 <抽象类>方法
/*
* OOP多态
* 1.抽象类abstract
* 特点:
* 1.1 可以被继承/重写,不能创建对象[实例化]
* 1.2 可能包含抽象成员[方法,属性]
* 1.3 抽象类概念: 表示一个抽象概念,所拥有的共性 行为数据
* 1.3.1 常常用于做基类,统一所有子类,管理子类
* 1.4 抽象方法概念: 只表示做什么,拥有什么数据,不表达具体做法,不表达数据具体取值
* 1.4.1 实现类必须实现所有的抽象方法,必须加 abstract 不能私有
* 1.4.2 实现类抽象方法的方法,必须加override 不能私有
* 1.4.3 抽象方法 必须放在抽象类中 / 接口中
*/
namespace LearnDemo20180304
{
class Program
{
static void Main(string[] args)
{
//Animal ani0 = null;
//ani0 = new Dog();
Animal ani1 = new Dog();
Animal[] arr0 = new Animal[3];
arr0[0] = new Dog();
arr0[1] = new Cat();
foreach (Animal item in arr0)
{
item.Call();
}
}
}
//定义端
abstract class Animal //动物 <抽象基类>
{
int id;
string name;
virtual public void Run() //虚方法
{
}
virtual public void Call()
{
}
}
class Dog : Animal //狗 <子类>
{
override public void Call()
{
Console.WriteLine("汪汪 !");
}
}
class Cat : Animal //猫 <子类>
{
override public void Call()
{
Console.WriteLine("喵喵 !");
}
}
}