怎么理解这句把接口当成类来用的语法?

来源:百度知道 编辑:UC知道 时间:2024/07/16 21:36:37
问题出在这句
private static void PrintPoint(IPoint p)
该怎么分析这句?普通的面向对象,多态这些知识我是懂的,但这句接口当成类来用,实在不懂分析
using System;
using System.Collections.Generic;
using System.Text;

namespace InterfaceDemo
{
interface IPoint
{
// Property signatures:
int x
{
get;
set;
}

int y
{
get;
set;
}
}

class MyPoint : IPoint
{
// Fields:
private int myX;
private int myY;

// Constructor:
public MyPoint(int x, int y)
{
myX = x;
myY = y;
}

// Property implementation:
public int x
{
get
{
return myX;
}

这 里 就 体 现 了 接 口的 用 处,接 口 顾 名 思 义 就 是 约 束 了 外 界 与 这 个 类 对 象 的 交 互,这 里PrintPoint方 法 接 受IPoint类 型 的 参 数,而 不 是 具 体 的 MyPoint,方 法 内 部 就 只 需 要 关 注 他 应 该 关 注 的 部 分 ,也 就 是IPoint接 口-暴 露 给 他 的 那 些,与 MyPoint的 具 体 实 现 无关,当你以后又有别 的 需 求,产 生 了 诸 如HisPoint,HerPoint (^_^)这 些 类 型,只 要 他 们实 现了IPoint接 口,一 样 可 以使 用 这 个方 法。
不好意思百度说我有广告,加点空格

这就是多态了嘛,要不哪来运行时的多态!

这个用到多态了? 饿~~~~~~~~
实现接口的类必须包括该接口所有成员的执行代码,且必须匹配指定的签名(包括匹配指定的get和set块),并且必须是公共的 马上要熄灯了 明天继续补充~