存档

文章标签 ‘接口’

C#高级(六)接口,接口的继承

2008年12月12日 没有评论

   接口我们在前面也已经有所提及。接口的命名传统上都以大写I 开头。

   我们假设这样一种情况,一个系统有很多用户,我们可以查询某个用户是否存在,并且可以修改用户的密码。但有可能某天我们的数据库从mysql 升级成为 sqlserver 。在这种情况下,我们看下面一个例子。

  

using System;
namespace www.gosoa.com.cn
{
    public interface IUserOperation
    {
        bool userExites(string username);
         bool updateUserPwd(string newPwd,string oldPwd);
    }


    public class SqlUserOperation: IUserOperation
    {
        //这里我们假使 uname oldPwd 是通过sql在数据库中查到的。具体查询,这里就不说了。
        string uname=“pan”;
        public string oldPwd=“www.gosoa.com.cn”;
        public bool userExites(string username)
        {
            if(username==uname)
            {
                return true;
            }
else
            {
                return false;
            }

        }

        
        public bool updateUserPwd(string newPwd,string oldPwd)
        {
            if(newPwd==oldPwd)
            {
                return true;
            }
else
            {
align=top src="http://www.gosoa.com.cn/images/codeimages/InBlock.gif">                return false;
            }

        }

    }

    
    public class MainClass
    {
static void Main(string [] args)
{
string newPwd =Console.ReadLine();
            string username =Console.ReadLine();
SqlUserOperation one=new SqlUserOperation();
            IUserOperation tow=new SqlUserOperation();
            if(tow.userExites(username))
            {
                 Console.WriteLine(“用户存在”);
            }
else
            {
                 Console.WriteLine(“用户不存在”);
            }

if(tow.updateUserPwd(newPwd,one.oldPwd))
{
     Console.WriteLine(“密码修改成功”);
}
else
{
     Console.WriteLine(“密码修改失败”);
}

}

    }


    /*
    //我们可能某天需要用mysql 数据库了。这时候的具体实现又有所不同了。
    public class MysqlUserOperation: IUserOperation
    {
        
    }

    */

}

 

   注意,实现接口的类,必须实现类的全部成员。否则会报错喔。

   我们来看这一句IUserOperation tow=new  SqlUserOperation(); 该句把引用变量声明为IUserOperation的引用方式,这表示,他们可以指向实现这个接口的任何类的实例。

   同时,接口也可以彼此继承,但要注意,实现接口的类必须实现接口以及接口的父接口的所有方法。

分类: .NET/C开发 标签: ,