C#面向对象(二)之抽象类实现多态

一、什么叫做多态?

统一操作作用于不同类的实例,不同类将进行不同的解释,最后产生不同的执行结果。

简单来说就是统一指令,对于不同的个体会产生不同的行为。

二、如何通过抽象方法实现多态?

1.创建一个基类people.cs

C#面向对象(二)之抽象类实现多态
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 继承之抽象类
{
    abstract class people  //抽象类
    {

       public abstract void SayHi();//抽象方法
      
    }
}
C#面向对象(二)之抽象类实现多态

 

2.创建两个子类分别为Student.cs和Teacher.cs

C#面向对象(二)之抽象类实现多态
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 继承之抽象类
{
    class Student:people  //继承抽象类Peoper
    {
        public override void SayHi()   //override重写抽象方法
        {
            Console.WriteLine("你好我是学生");
        }
    }
}
C#面向对象(二)之抽象类实现多态
C#面向对象(二)之抽象类实现多态
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 继承之抽象类
{
    class Teacher:people  //继承抽象类Peoper
    {

        public override void SayHi()   //重写抽象类Poeoer中的抽象方法SayHi()
        {
           Console.WriteLine("你好我是老师");
        }
    }
}
C#面向对象(二)之抽象类实现多态

3.输出结果Program.cs

C#面向对象(二)之抽象类实现多态
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 继承之抽象类
{
    class Program
    {
       static List<people> peopers = new List<people>();  //定义一个泛型实例

        public static void InitData()
        {
            Student st = new Student();

            Teacher tc = new Teacher();

            peopers.Add(st);
            peopers.Add(tc);

        }
        public static void Start()
        {
            foreach (people peoper in peopers)  //遍历泛型实例
            {
                peoper.SayHi();
            }
        }

        static void Main(string[] args)
        {
            InitData();
            Start();
            Console.ReadLine();
        }
    }
}
C#面向对象(二)之抽象类实现多态

结果:C#面向对象(二)之抽象类实现多态

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

C#面向对象(二)之抽象类实现多态

上一篇:项目失败总结


下一篇:【转】解析消极开发者对于团队的影响及解决方法