标签:main sum value compare nas 关系 的区别 理解 接口实现
接口的定义
//使用关键字 interface
interface ICustomCompare
{
//定义比较方法,继承该接口的类都要实现该方法
int CompareTo(object other);
}
继承接口
//定义类并继承接口
public class Person:ICustomCompare
{
int age;
public int Age
{
get{ return age; }
set{ age=value; }
}
//实现接口方法
public int CompareTo(object value)
{
if(value==null)
{
return 1;
}
//将object类型强制转换为Person类型
Person otherp=(Person)value;
//把当前对象的Age属性与需要比较的对象Age属性进行对比
if(this.Age < otherp.Age)
{
return -1;
}
if(this.Age > otherp.Age)
{
return 1;
}
return 0;
}
}
namespace Person
{
/// <summary>
/// 中国人打招呼接口
/// </summary>
interface IChinaseGreeting
{
//接口方法声明
void SayHello();
}
/// <summary>
/// 美国人打招呼接口
/// </summary>
interface IAmericanGreeting
{
//接口方法声明
void SayHello();
}
/// <summary>
/// Speaker类实现了二个接口
/// </summary>
public class Speaker : IChinaseGreeting, IAmericanGreeting
{
//隐式接口的实现
public void SayHello()
{
Console.WriteLine("你好");
}
//显式接口的实现
void IChinaseGreeting.SayHello() {
Console.WriteLine("你好");
}
void IAmericanGreeting.SayHello()
{
Console.WriteLine("Hello");
}
}
class Program
{
static void Main(string[] args)
{
Speaker p=new Speaker();
//隐式调用打招呼的方法,都会输出 "你好"
p.SayHello();
//显式的调用中国人打招呼的方法
IChinaseGreeting chinaseGreeting = (IChinaseGreeting)p;
chinaseGreeting.SayHello();
//显式的调用美国人打招呼的方法
IAmericanGreeting americanGreeting = (IAmericanGreeting)p;
americanGreeting.SayHello();
Console.ReadLine();
//输出结果
//你好
//你好
//Hello
}
}
}
abstract
关键字进行定义,而接口使用interface
关键字定义;它们都不能进行实例化标签:main sum value compare nas 关系 的区别 理解 接口实现
原文地址:https://www.cnblogs.com/youMo/p/10360400.html