声明一个接口IPlayer,包含5个接口方法:播放、停止、暂停、上一首和下一首。设计一个Windows应用程序,在该程序中定义一个MP3播放器类和一个AVI播放器类,以实现该接口,最后创建相应类的实例

本文主要是介绍声明一个接口IPlayer,包含5个接口方法:播放、停止、暂停、上一首和下一首。设计一个Windows应用程序,在该程序中定义一个MP3播放器类和一个AVI播放器类,以实现该接口,最后创建相应类的实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
从左往右,btnMP3,lblShow,btnAVI

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}IPlayer iplayer;MP3 mp3;AVI avi;interface IPlayer    //接口定义{string Play();   //播放string Stop();   //停止string Pause();  //暂停string Pre();    //上一首string Next();   //下一首}public class MP3 : IPlayer{public string Play(){return "正在播放MP3歌曲!";}public string Stop(){return "停止播放MP3歌曲!";}public string Pause(){return "暂停播放MP3歌曲!";}public string Pre(){return "播放上一首MP3歌曲!";}public string Next(){return "播放下一首MP3歌曲!";}}public class AVI : IPlayer{public string Play(){return "正在播放AVI视频!";}public string Stop(){return "停止播放AVI视频!";}public string Pause(){return "暂停播放AVI视频!";}public string Pre(){return "播放上一首AVI视频!";}public string Next(){return "播放下一首AVI视频!";}}private void btnAVI_Click(object sender, EventArgs e){avi = new AVI();       //新建AVI对象iplayer = (IPlayer)avi;     //将avi转化为接口}private void btnMP3_Click(object sender, EventArgs e){mp3 = new MP3();        //新建Mp3对象iplayer = (IPlayer)mp3;     //将MP3转换为接口}private void button3_Click(object sender, EventArgs e)//上一首{if (mp3 is IPlayer || avi is IPlayer)       //判断{lblShow.Text = "\n" + iplayer.Pre();}else{MessageBox.Show("请选择播放MP3歌曲或AVI视频!");}}private void button5_Click(object sender, EventArgs e)//停止{if (mp3 is IPlayer || avi is IPlayer)   //判断类型{lblShow.Text = "\n" + iplayer.Stop();}else{MessageBox.Show("请选择播放MP3歌曲或AVI视频!");//判断是否为空}}private void button6_Click(object sender, EventArgs e)//播放{if (mp3 is IPlayer || avi is IPlayer){lblShow.Text = "\n" + iplayer.Play();}else{MessageBox.Show("请选择播放MP3歌曲或AVI视频!");}}private void button7_Click(object sender, EventArgs e)//暂停{if (mp3 is IPlayer || avi is IPlayer){lblShow.Text = "\n" + iplayer.Pause();}else{MessageBox.Show("请选择播放MP3歌曲或AVI视频!");}}private void button4_Click(object sender, EventArgs e)//下一首{if (mp3 is IPlayer || avi is IPlayer){lblShow.Text = "\n" + iplayer.Next();}else{MessageBox.Show("请选择播放MP3歌曲或AVI视频!");}}}
}

这篇关于声明一个接口IPlayer,包含5个接口方法:播放、停止、暂停、上一首和下一首。设计一个Windows应用程序,在该程序中定义一个MP3播放器类和一个AVI播放器类,以实现该接口,最后创建相应类的实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/859854

相关文章

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

C# Where 泛型约束的实现

《C#Where泛型约束的实现》本文主要介绍了C#Where泛型约束的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用的对象约束分类where T : structwhere T : classwhere T : ne

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解