面向对象的三个基本特征: 封装、继承、多态
说明:继承类时,需要使用冒号加类名。
//定义基类
public class Class1
{
public void outMethod()
{
Console.WriteLine("这是基类");
}
}
//定义继承类,该类继承于基类Class1
public class Class2:Class1
{
public void outMethod2()
{
Console.WriteLine("这是继承类");
}
}
class Program
{
static void Main(string[] args)
{
Class1 class1 = new Class1();//实例化Class1类对象
class1.outMethod();//调用Class1中的自定义方法
Class2 class2 = new Class2();//实例化Class2类对象
class2.outMethod();//使用Class2类对象调用从基类Class1中继承的自定义方法
class2.outMethod2();//调用Class2中的自定义方法
}
}
多态的概念及用途
//定义基类
public class BaseClass
{
//定义一个virtual类型的方法,以便在派生类中重写该方法
public virtual void DoWork() { }
//定义一个virtual类型的只读属性,以便在派生类中重写该属性
public virtual int WorkProperty
{
get { return 0; }
}
}
//定义派生类
public class DerivedClass : BaseClass
{
//重写基类中方法
public override void DoWork() { }
//重写基类中的只读属性
public override int WorkProperty
{
get { return 0; }
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass B = new DerivedClass();
B.DoWork(); //调用派生类中方法
BaseClass A = (BaseClass)B;
A.DoWork(); //也调用派生类中方法
}
}
说明:当派生类从基类继承时,它会获得基类的所有方法、字段、属性和事件。若要更改基类的数据和行为,有两种选择:可以使用新的派生成员替换基成员,或者可以重写虚拟的基成员。
上面的实例重写了虚拟的基成员,另外,开发人员还可以使用新的派生成员替换基类的成员,这时需要使用new关键字。如果基类定义了一个方法、字段或属性,则new关键字用于在派生类中创建该方法、字段或属性的新定义。new关键字放置在要替换的类成员的返回类型之前,例如:
public class BaseClass
{
public void DoWork() { }
public int WorkProperty
{
get { return 0; }
}
}
public class DerivedClass : BaseClass
{
public new void DoWork() { }
public new int WorkProperty
{
get { return 0; }
}
}