社区
C#
帖子详情
如何用interface实现多继承?在线等
hater
2003-05-16 12:20:00
请写一段代码并加上注释,最好详细点谢谢。
收到马上给分
...全文
128
5
打赏
收藏
如何用interface实现多继承?在线等
请写一段代码并加上注释,最好详细点谢谢。 收到马上给分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hater
2003-05-21
打赏
举报
回复
结贴
windsoft
2003-05-16
打赏
举报
回复
這麼復雜
public class aa : i1,i2
i1,i2是interface
就行了吧
jiezhi
2003-05-16
打赏
举报
回复
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WinApp_Interface_Document
{
/// <summary>
/// Define a interface IStorable
/// </summary>
interface IStorable
{
void Read(TextBox txt_box);
void Write(TextBox txt_box);
int Status{get;set;}
}
interface ICompressible
{
void Compress(TextBox txt_box);
void Decompress(TextBox txt_box);
}
public class Document:IStorable,ICompressible
{
public Document(string s)
{
MessageBox.Show(s);
}
//Implement method:Read()
public void Read(TextBox txt_box)
{
txt_box.AppendText("Read Document...\n");
}
public void Write(TextBox txt_box)
{
txt_box.AppendText("Write Document...\n");
}
public void Compress(TextBox txt_box)
{
txt_box.AppendText("Compress Document...\n");
}
public void Decompress(TextBox txt_box)
{
txt_box.AppendText("Decompress Document...\n");
}
//Implement property
public int Status
{
get
{
return status;
}
set
{
status=value;
}
}
private int status;
}
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(160, 176);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "Interface";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(40, 16);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.textBox1.Size = new System.Drawing.Size(336, 144);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(416, 221);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.textBox1,
this.button1});
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
textBox1.Text="";
Document doc=new Document("Test Document now...");
doc.Status=-1;
doc.Read(textBox1);
textBox1.AppendText("Status:"+doc.Status.ToString()+"\n");
doc.Compress(textBox1);
doc.Decompress(textBox1);
//Conver to interface
IStorable isDoc=doc as IStorable;
if (isDoc !=null)
{
isDoc.Status=0;
isDoc.Read(textBox1);
textBox1.AppendText("Status:"+isDoc.Status.ToString()+"\n");
}
else
MessageBox.Show("Interface IStorable not supported.");
ICompressible isCom=doc as ICompressible;
if (isCom !=null)
{
isCom.Compress(textBox1);
isCom.Decompress(textBox1);
}
else
MessageBox.Show("Interface ICompressible not supported.");
}
}
}
yqdeng
2003-05-16
打赏
举报
回复
和c++中的class多继承差不多,只不过在继承类里面必须实现interface里得所有方法
yarshray
2003-05-16
打赏
举报
回复
思想:继承接口并组合实现
例子:
http://www.csdn.net/develop/read_article.asp?id=17661
SpringBoot整合ElasticSearch
实现
电商高性能搜索引擎
21 elasticsearch 中文词库的使用案例 22 elasticsearch 自定义词库配置 23 安装nginx 配置中文词库 24 测试elasticsearch 自定义中文词库 25 搭建项目父工程 26 搭建项目bean-
interface
-common 27 搭建search 的...
php接口间如何继承,PHP如何使用接口
实现
多重继承?(代码示例)
多重继承是面向对象编程语言的属性,其中子类可以继承多个父类或超级类的属性。那么如何在PHP中
实现
多重继承?下面本篇文章就来给大家介绍一下使用接口
实现
多重继承的方法,希望对大家有所帮助。PHP是不支持多重继承的,一次只继承一个类。但是,我们可以通过在PHP中使用接口(
Interface
)或Trait特性来
实现
多重继承。下面我们就来介绍一下如何在PHP中使用接口(
Interface
)
实现
多重继承的...
Java如何
实现
多继承
?
今天舍友面了一家公司,面完后他发了面经,有一个问题印象比较深,对话如下: 面试官:Java支持
多继承
吗? 舍友:准确来说不支持,但是接口与接口之间可以允许
多继承
。 面试官:那假如我一定要用类来
实现
多继承
,可以吗? 。。。 不会,于是上网找了资料,然后记录下来 Java除了可以用接口(
Interface
)
实现
多继承
之外,还可以用内部类(inner Class)来
实现
多继承
。但是用内部类来
实现
多继承
的话,网上有争议,认为这不是严格的
多继承
,因为一般来说继承往往可以伴随上转型,但是内部类不行。不.
php
interface
实现
多继承
如何使用
interface
实现
多继承
呢? 废话少说,上代码! // 老师
interface
Teacher
Interface
{ public function eat(); public function teach(); } // 学生
interface
Study
Interface
{ public function study(); public function shop(); } // 工人
interface
Worker
Interface
{ public functi
php中多重继承,PHP如何使用接口
实现
多重继承?(代码示例)
多重继承是面向对象编程语言的属性,其中子类可以继承多个父类或超级类的属性。那么如何在PHP中
实现
多重继承?下面本篇文章就来给大家介绍一下使用接口
实现
多重继承的方法,希望对大家有所帮助。PHP是不支持多重继承的,一次只继承一个类。但是,我们可以通过在PHP中使用接口(
Interface
)或Trait特性来
实现
多重继承。下面我们就来介绍一下如何在PHP中使用接口(
Interface
)
实现
多重继承的...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章