今日继续我的C#学习之路,今日学习接口、委托、事件,文章从实践出发学习这三个设计理念,并提供完整源码
目录
1、接口(多重继承):
C#不支持类的多重继承,但可以继承多个接口
C#中的多重继承要用接口来实现,接口就是为了实现多继承而产生的,
C#中,接口可多继承,接口之间可互相继承,普通类和抽象类可以继承自接口,一个类可以同时继承一个类和多个接口,但是接口不能继承类
(1)接口名是任意合法的标识符,建议以大写I开头。
(2)声明的接口可以继承一个基类和多个其他接口。
(3)接口修饰符可以是new、public、protected、internal、private。
(4)接口成员前面不允许有修饰符,都默认为公有成员。
(5)接口成员可以分为四类-方法、属性、事件和索引器,而不能包含成员变量(6)不能在声明接口的同时编写接口成员的实现代码。
接口要通过继承才能实现,即定义继承接口的类,并在类中实现所有的接口成员
class 类名:[基类名],接口名1,接口名2... { 类成员 }
定义的类必须提供被继承接口中所有成员的实现,否则将产出编译错误
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ipoint_YZH
{
internal class Program
{
static void Main(string[] args)
{
//应用接口的派生类Point实例化一个新的对象并进行初始化赋值
Point p = new Point(5,30);
Console.WriteLine("创建的点坐标是:x={0},y={1}\n",p.x,p.y);
Console.ReadLine();
}
public interface IPoint
{
int x { get; set; }//定义属性成员x,他含有读写的抽象访问
int y { get; set; }//定义属性成员y,他含有读写的抽象访问
}
class Point:IPoint
{
//定义俩个类内部访问的私有成员变量
private int px;
private int py;
//构造函数实现类初始化,为私有变量赋值
public Point (int x,int y)
{
px = x;
py = y;
}
//接口属性x实现
public int x
{
get { return px; }//实现读访问
set { px = value; }//实现写访问
}
//接口属性y实现
public int y
{
get { return py; }//实现读访问
set { py = value; }//实现写访问
}
}
}
}