New Documentbody { margin: 0; padding: 0; word-wrap: break-word; font-size:14px; line-height:1.8em; font-family: Tahoma, Arial, Helvetica, snas-serif; }
欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
Virtual和override的用法:
Virtual用于基类中,指定一个虚方法(属性),表示这个方法(属性)可以重写。
Override 用在派生类中,表示对基类虚方法的重写。
class People
{
public string name = "张三"; public string id = "123155";
public string sex = "男"; public int age = 20;
public virtual void Print()//这是virtual
{
Console.WriteLine("姓名:" + name + " " + "id:" + id + " " + "年龄:" + age + " " + "性别:" + sex);
}
}
public enum subjects
{
English,
Math,
Chinese
}
class Student : People
{
string school = "和软";
subjects a;
public override void Print()//这是override
{
Console.WriteLine("姓名:" + name + " " + "id:" + id + " " + "年龄:" + age + " " + "性别:" + sex+" "+"学校:" + school+" "+"科目:" + a);
}
static void Main(string[] args)
{
Student s = new Student();
s.Print();
Console.ReadKey();
}
}
Virtual关键字和override关键字是成对出现的,少一个就会出现语法错误
派生类可以通过将重写声明为sealed来停止虚拟继承。这需要在类成员声明中的override关键字前面放置sealed关键字。
在子类中重写基类中的虚方法时,可以使用base关键字调用基类中的虚方法。
多态:通过继承实现的不同对象调用相同的方法,表现出不同的行为。
public abstract class Graph
{
public int getSides(){ }
}
//这就是继承
public class Circular : Graph
{
public override int getSides() //子类使用父类的方法
{
return 1;
}
}
public class square : Graph
{
public override int getSides() //子类使用父类的方法
{
return 2;
}
}
索引器:
索引器类型表示该索引器使用哪一类型的索引来存取数组或集合元素。
private string name;
private string password;
public string Name {
set {
name = value;
}
get {
return name;
}
}
public string Password {
set {
password = value;
}
get {
return password;
}
}
public string Name
{
set;
get;
}
public string Password
{
set;
get;
}
public string this[int index] {
set {
if (index == 0) {
name = value;
}
else if (index == 1)
{
password = value;
}
}
get {
if (index == 0)
{
return name;
}
else if (index == 1)
{
return password;
}
else {
return null;
}
}
}
static void Main(string[] args)
{
Human h = new Human();
h[0] = "小郝";
h[1] = "1237825";
Console。Readkey();
}