unity c# 接口

接口和类相似,但接口只为成员提供定义而不提供实现。接口和类的不同之处有:

1 接口的成员都是隐含抽象的。相反,类可以包含抽象成员和具体实现的成员。

2 一个类(或结构体)可以实现多个接口。相反,类只能继承一个类,而结构体完全不支持继承(只能从System.ValueType派生)。

接口声明和类声明相似,接口声明的关键字是interface。但接口不提供其成员的实现,因为它的所有成员都是隐式定义为抽象的。

这些成员将有实现接口的类成员或结构体实现。接口只能包含方法,属性,事件,索引器,这些正是类中可以定义为抽象的成员。


我们在unity中写一个简单的例子。

工程目录结构如下图

其中DateInterface.cs为接口文件,代码如下:

using UnityEngine;
using System.Collections;

public interface DateInterface {
	string GetName();
	void SetName(string name);
}
我们定义了一个接口名字为DateInterface,接口中有两个方法 GetName,SetName

Data类继承接口DateInterface 并实现接口中的两个方法,代码如下

using UnityEngine;
using System.Collections;

public class Date : DateInterface{
	private string name;

	public string GetName(){
		return name;
	}

	public void SetName(string name){
		this.name = name;
	}
}

接着我们写一个测试的类TestInterface,代码如下

using UnityEngine;
using System.Collections;

public class TestInterface : MonoBehaviour {
	public string name;
	private Date date = new Date();
	public void SetName(){
		date.SetName (name);
	}

	public void GetName(){
		Debug.Log ("name "+date.GetName());
	}
}


我们创建两个button

把脚本TestInterface挂在Canvas上,然后给SetName按钮和GetName按钮添加点击相应事件分别对应TestInterface中的SetName和GetName方法。

把TestInterface中的name字段设为"老王"


先点击SetName按钮再点击GetName按钮,我们就可以从Console面板中看到输出的日志















  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值