接口我们在前面也已经有所提及。接口的命名传统上都以大写I 开头。
我们假设这样一种情况,一个系统有很多用户,我们可以查询某个用户是否存在,并且可以修改用户 的密码。但有可能某天我们的数据库从mysql 升级成为 sqlserver 。在这种情况下,我们看下面一个例 子。
using System;namespace 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="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 { 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的引用方式,这表示,他们可以指向实现这个接口的任何类的实例。
同时,接口也可以彼此继承,但要注意,实现接口的类必须实现接口以及接口的父接口的所有方法。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, 接口
, 用户
, public
, 高级接口
, console
username
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。
时间: 2024-08-10 09:03:43