C# 实现多态的的简单易学的例子-实现不同的用户登录到不同的界面(用抽象类,抽象方法实现的多态)加上泛型来实现

来源:互联网 发布:图片合成动画软件 编辑:程序博客网 时间:2024/06/05 19:22

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OOPText
{
    /// <summary>
    /// 多态:实现不同的用户进入到不同的界面
    /// 但是都有登入的功能
    /// 因此采用多态:可以用抽象实现多态,可以用虚方法实现多态
    /// 下面是一个抽象类实现多态
    /// </summary>
   public  abstract class Persons
    {
        //.........省略了其他的方法和属性.......//
        //抽象方法无方法体
        public abstract void Login(string name, string password);
        static void Main()
        {
            List<Persons> person = new List<Persons>();

            User user = new User();
            Admin admin = new Admin();
            person.Add(user);
            person.Add(admin);
            for (int i = 0; i < person.Count; i++ )
            {
                person[i].Login("user","123");
            }
            Console.ReadLine();
        }
    }
    /// <summary>
    /// User类继承Persons
    /// </summary>
    public class User : Persons
    {
        //省略其他的属性,方法等
        //用oveeide修饰的方法和父类的方法相同实现对父类的重载
        public override void Login(string name, string password)
        {
            if (name == "user" && password == "123")
            {
                Console.WriteLine("登陆成功!!!");
                Console.WriteLine("正在进入user页面,请稍等!!!");
            }
            else
            {
                Console.WriteLine("登陆失败1!!");
            }
        }
    }
    public class Admin : Persons
    {
        public override void Login(string name, string password)
        {
            if (name == "user" && password == "123")
            {
                Console.WriteLine("登陆成功!!!");
                Console.WriteLine("正在进入admin页面,请稍等!!!");
            }
            else
            {
                Console.WriteLine("登陆失败1!!");
            }
        }
    }

}

原创粉丝点击