在继承中虚类和费虚类的区别

虚方法定义:
虚方法就是可以被子类重写的方法,如果子类重写了虚方法
,那么就运行重写后的虚方法,如果没有,则就用父类的虚方法
virtual关键用于修饰方法、属性、索引或事件生命,并允许
在派生类中重写这些现象。


例如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 虚方法
{
class Person
{

#region 虚方法与非虚方法的不同
//虚方法
public virtual void Intrudction1()//重写虚方法
{
Console.WriteLine("这是虚方法");
Console.WriteLine("My name is kexiwang,I am 21 years old,I am from china");
}

// 非虚方法
public void Intrudction2()
{
Console.WriteLine("这是非虚方法");
Console.WriteLine("My name is kexiwang,I am 21 years old,I am from china");
}
#endregion
}
class Chinese : Person
{



}
class Americal : Person
{

public override void Intrudction1()//重写虚方法
{
Console.WriteLine("My name is tom,I am 25 years old,I am from Amrican");
}
new public void Intrudction2()
{
Console.WriteLine("My name is tom,I am 25 years old,I am from Amrican");
}
class Program
{
static void Main(string[] args)
{
Chinese ch=new Chinese();
Americal am = new Americal();
Korean ko = new Korean();
Person[] p = { ch, am, ko };
for (int i = 0; i < p.Length; i++)
{
p[i].Intrudction1();
p[i].Intrudction2();
}
Console.ReadKey();
}
}
}
class Korean : Person
{
public override void Intrudction1()
{
Console.WriteLine("My name is putaihuan,I am 29 years old,I am from korean");
}
new public void Intrudction2()
{
Console.WriteLine("My name is putaihuan,I am 29 years old,I am from korean");
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值