c# 接口interface基础入门小例子
更新时间:2020年6月25日 11:42 点击:1681
复制代码 代码如下:
/// <summary>
/// interface
/// 与抽象类的区别:
/// 1,abstract可以有具体方法和抽象方法(必须有一个抽象方法),interface没有方法实现
/// 2,abstract可以有构造函数和析构函数,接口不行
/// 3,一个类可以实现多个interface,但只能继承一个abstract
/// 特点:
/// interface成员隐式具有public,所以不加修饰符
/// 不可以直接创建接口的实例,如:IPerson xx=new IPerson()//error
/// </summary>
public interface IPerson
{
string Name { get; set; }//特性
DateTime Brith { get; set; }
int Age();//函数方法
}
interface IAdderss
{
uint Zip { get; set; }
string State();
}
复制代码 代码如下:
/// <summary>
/// interface实现interface
/// </summary>
interface IManager:IPerson
{
string Dept { get; set; }
}
/// <summary>
/// 实现多个interface
/// 实现哪个interface必须写全实现的所有成员!
/// </summary>
public class Employee:IPerson,IAdderss
{
public string Name { get; set; }
public DateTime Brith { get; set; }
public int Age()
{
return 10;
throw new NotImplementedException();
}
public uint Zip { get; set; }
public string State()
{
return "alive";
}
}
复制代码 代码如下:
/// <summary>
/// 重写接口实现:
/// 如下,类 Employer 实现了IPerson,其中方法 Age() 标记为virtual,所以继承于 Employer 的类可以重写 Age()
///
/// </summary>
public class Employer:IPerson
{
public string Name { get; set; }
public DateTime Brith { get; set; }
public virtual int Age()
{
return 10;
}
}
public class work:Employer
{
public override int Age()
{
return base.Age()+100;//其中base是父类
}
}
实现,对象与实例:
复制代码 代码如下:
#region #interface
Employee eaji = new Employee()
{
Name = "aji",
Brith = new DateTime(1991,06,26),
};
#endregion
#region #interface 的强制转换
IPerson ip = (IPerson)eaji; //可以通过一个实例来强制转换一个接口的实例,进而访问其成员,
ip.Age();
DateTime x=ip.Brith;
//也可以写成这样:
IPerson ip2 = (IPerson) new Employee();
//但是这样子有时候不是很安全,我们一般用is 和 as来强制转换:
if (eaji is IPerson)
{
IPerson ip3 = (IPerson)eaji;
}
//但is并不是很高效,最好就是用as:
IPerson ip4 = eaji as IPerson;
if (ip4 != null)//用as时,如果发现实现ip4的类没有继承 IPerson,就会返回null
{
Console.WriteLine(ip4.Age());
}
#endregion
相关文章
- 这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
- 这篇文章主要介绍了vue接口请求加密实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
- 这篇文章主要介绍了C#简单了解接口(Interface)使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-08
- 这篇文章主要介绍了SpringBoot接口接收json参数解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-19
- 这篇文章主要介绍了C# Rx的主要接口深入理解的相关资料,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Feign接口方法返回值设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-08
- 这篇文章主要介绍了vue设置全局访问接口API地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
- 在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
- php怎么写api接口?本文介绍了php写api接口的实例代码,有兴趣的同学可以参考一下。 http://localhost/openUser.php?act=get_user_list&type=json在这里openUser.php...2017-07-06
- 这篇文章主要介绍了vue配置多代理服务接口地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-08
- 下面通过四步给大家介绍了c#处理和对接http接口请求的方法,分步骤介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧...2020-06-25
- 这篇文章主要介绍了Java接口DAO模式代码原理及应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-03
- 这篇文章主要介绍了C#实现两接口中同名方法,涉及C#接口与方法的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c#接口使用的实例,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-17
- 这篇文章主要介绍了微信小程序通过api接口将json数据展现到小程序示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-01-23
- 这篇文章主要介绍了SpringData Repository接口用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-27
- 这篇文章主要介绍了详解c# 接口IDisposable的用法,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...2020-12-08
- restful接口常用的两种方式是get和post.接下来通过本文给大家介绍Restful接口的两种使用方式,本文给大家介绍的非常详细,需要的朋友参考下吧...2020-06-25
- 最近,在做测试开发平台的时候,需要对测试用例的列表进行后端分页,在实际去写代码和测试的过程中,发现这里面还是有些细节的,故想复盘一下...2021-09-29
- 这篇文章主要介绍了vue 接口请求地址前缀本地开发和线上开发设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-13