多态可以用
1、virtul override
2、abstract override
3、interface
实现。
例子1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudyCS
{
class Program
{
static void Main(string[] args)
{
Persion LiLei = new Persion("lilei");
Pig P1 = new Pig("pei qi");
StudyPolymorphic[] tmp = { LiLei, P1 };
for (int i = 0; i < tmp.Length; i++)
tmp[i].run();
Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudyCS
{
public class StudyPolymorphic
{
public string name;
public string Name
{
get { return name; }
set { name = value; }
}
public StudyPolymorphic(string name)
{
this.Name = name;
}
public virtual void run()
{
Console.WriteLine(this.Name+"feet run.");
}
}
public class Persion : StudyPolymorphic
{
public Persion(string name):base(name)
{
}
public override void run()
{
Console.WriteLine(this.Name + "2 feet run.");
}
}
public class Pig:StudyPolymorphic
{
public Pig(string name):base(name)
{
}
public override void run()
{
Console.WriteLine(this.Name + "4 feet run.");
}
}
}
2、
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudyCS
{
public abstract class StudyPolymorphic
{
public string name;
public string Name
{
get { return name; }
set { name = value; }
}
public StudyPolymorphic(string name)
{
this.Name = name;
}
public abstract void Run();
}
public class Persion : StudyPolymorphic
{
public Persion(string name):base(name)
{
}
public override void Run()
{
Console.WriteLine(this.Name + "2 feet run.");
}
}
public class Pig:StudyPolymorphic
{
public Pig(string name):base(name)
{
}
public override void Run()
{
Console.WriteLine(this.Name + "4 feet run.");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudyCS
{
class Program
{
static void Main(string[] args)
{
Persion LiLei = new Persion("lilei");
Pig P1 = new Pig("pei qi");
StudyPolymorphic[] tmp = { LiLei, P1 };
for (int i = 0; i < tmp.Length; i++)
tmp[i].Run();
Console.ReadLine();
}
}
}
3、
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudyCS
{
public abstract class StudyPolymorphic
{
public string name;
public string Name
{
get { return name; }
set { name = value; }
}
public StudyPolymorphic(string name)
{
this.Name = name;
}
public abstract void Run();
}
public class Persion : StudyPolymorphic
{
public Persion(string name):base(name)
{
}
public override void Run()
{
Console.WriteLine(this.Name + "2 feet run.");
}
}
public class Pig:StudyPolymorphic
{
public Pig(string name):base(name)
{
}
public override void Run()
{
Console.WriteLine(this.Name + "4 feet run.");
}
}
public class Chicken : StudyPolymorphic, IfFlyaable
{
public Chicken(string name) : base(name)
{
}
public override void Run()
{
Console.WriteLine(this.Name + "2 feet run.");
}
public void Fly()
{
Console.WriteLine(this.Name + "I can fling");
}
}
public class Bird : StudyPolymorphic
{
public Bird(string name) : base(name)
{
}
public override void Run()
{
Console.WriteLine(this.Name + "2 feet run.");
}
public void Fly()
{
Console.WriteLine(this.Name + "I can fling");
}
}
public interface IfFlyaable
{
void Fly();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudyCS
{
class Program
{
static void Main(string[] args)
{
Persion LiLei = new Persion("lilei");
Pig P1 = new Pig("pei qi");
Chicken Chi1 = new Chicken("miJi");
Bird Bird1 = new Bird("maque");
StudyPolymorphic[] tmp = { LiLei, P1 ,Chi1};
for (int i = 0; i < tmp.Length; i++)
tmp[i].Run();
Chi1.Fly();
Bird1.Fly();
Console.ReadLine();
}
}
}