接口实现多态
程序员文章站
2022-06-13 21:14:23
...
创建一个接口. 新建类->新建接口 . 接口都是I开头, 且默认public 不用写public
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterFace
{
interface ImultiPrinter
{
void Print(string content);
void Copy(string content);
bool Fax(string content);
}
}
用快捷键快速建立2个类, 并继承于接口, 接口可以使用接口实现快捷键
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterFace
{
class HPmultiPrinter : ImultiPrinter
{
public void Copy(string content)
{
//编写打印程序
Console.WriteLine("欢迎使用惠普打印机");
Console.WriteLine("HP打印机正在复印..." + content);
}
public bool Fax(string content)
{
Console.WriteLine("欢迎使用惠普打印机");
Console.WriteLine("HP打印机正在传真..." + content);
return true;
}
public void Print(string content)
{
Console.WriteLine("欢迎使用惠普打印机");
Console.WriteLine("HP打印机正在打印..." + content);
}
//void ImultiPrinter.Copy(string content)
//{
// throw new NotImplementedException();
//}
//bool ImultiPrinter.Fax(string content)
//{
// throw new NotImplementedException();
//}
//void ImultiPrinter.Print(string content)
//{
// throw new NotImplementedException();
//}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterFace
{
public class CanonPrinter : ImultiPrinter
{
public void Copy(string content)
{
//编写打印程序
Console.WriteLine("欢迎使用佳能打印机");
Console.WriteLine("佳能打印机正在复印..." + content);
}
public bool Fax(string content)
{
Console.WriteLine("欢迎使用佳能打印机");
Console.WriteLine("佳能打印机正在传真..." + content);
return true;
}
public void Print(string content)
{
Console.WriteLine("欢迎使用佳能打印机");
Console.WriteLine("佳能打印机正在打印..." + content);
}
}
}
在主程序中实现 .同理 Person per = new Student(); 子类可以继承父类, 父类在左边.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterFace
{
class Program
{
static void Main(string[] args)
{
//创建对象(通过接口)
//ImultiPrinter objprint = new HPmultiPrinter();
//objprint.Print("学生名单");
//objprint.Copy("学生姓名");
//objprint.Fax("学生班级");
//Console.ReadKey();
欢迎使用惠普打印机
HP打印机正在打印...学生名单
欢迎使用惠普打印机
HP打印机正在复印...学生姓名
欢迎使用惠普打印机
HP打印机正在传真...学生班级
//Person p = new Student_1();
ImultiPrinter objprinter1 = new HPmultiPrinter();
ImultiPrinter objprinter2 = new CanonPrinter();
Print(objprinter1);
Print(objprinter2);
Console.ReadKey();
//结果:
//欢迎使用惠普打印机
//HP打印机正在打印...学生名单
//欢迎使用惠普打印机
//HP打印机正在复印...学生姓名
//欢迎使用惠普打印机
//HP打印机正在传真...学生班级
//欢迎使用佳能打印机
//佳能打印机正在打印...学生名单
//欢迎使用佳能打印机
//佳能打印机正在复印...学生姓名
//欢迎使用佳能打印机
//佳能打印机正在传真...学生班级
}
static void Print(ImultiPrinter objprinter)
{
objprinter.Print("学生名单");
objprinter.Copy("学生姓名");
objprinter.Fax("学生班级");
}
}
}
上一篇: 导致网站降权的这些原因 你必须知道
下一篇: php 后台给安卓写支付宝接口