作者在 2008-05-02 16:47:37 发布以下内容
using System;
interface IDrivingLicenceB
{
void GetLicence();
}
interface IDrivingLicenceA : IDrivingLicenceB
{
new void GetLicence();
}
class teacher : IDrivingLicenceA
{
public void GetLicence()
{
Console.WriteLine("教师获得A驾驶执照");
}
}
class student : IDrivingLicenceB
{
public void GetLicence()
{
Console.WriteLine("学生获得B驾驶执照");
}
}
class test
{
static void dirveCar(string name,object o)
{
IDrivingLicenceB g=o as IDrivingLicenceB;
if(g!=null) //实现接口的情况
{
Console.WriteLine(name+"有A或B驾驶执照,车子开动了。");
}
else //没有实现接口的情况
{
Console.WriteLine(name+"无A或B驾驶执照,不能开车。");
}
}
static void dirveBus(string name,object o)
{
IDrivingLicenceA s=o as IDrivingLicenceA;
if(s!=null)
{
Console.WriteLine(name+"有A驾驶执照,车子开动了。");
}
else
{
Console.WriteLine(name+"无A驾驶执照,不能开车。");
}
}
static void Main()
{
teacher t=new teacher();
dirveCar("教师",t);
dirveBus("教师",t);
student s=new student();
dirveCar("学生",s);
dirveBus("学生",s);
}
}
输出:
教师有A或B驾驶执照,车子开动
教师有A驾驶执照,车子开动了。
学生有A或B驾驶执照,车子开动
学生无A驾驶执照,不能开车。
interface IDrivingLicenceB
{
void GetLicence();
}
interface IDrivingLicenceA : IDrivingLicenceB
{
new void GetLicence();
}
class teacher : IDrivingLicenceA
{
public void GetLicence()
{
Console.WriteLine("教师获得A驾驶执照");
}
}
class student : IDrivingLicenceB
{
public void GetLicence()
{
Console.WriteLine("学生获得B驾驶执照");
}
}
class test
{
static void dirveCar(string name,object o)
{
IDrivingLicenceB g=o as IDrivingLicenceB;
if(g!=null) //实现接口的情况
{
Console.WriteLine(name+"有A或B驾驶执照,车子开动了。");
}
else //没有实现接口的情况
{
Console.WriteLine(name+"无A或B驾驶执照,不能开车。");
}
}
static void dirveBus(string name,object o)
{
IDrivingLicenceA s=o as IDrivingLicenceA;
if(s!=null)
{
Console.WriteLine(name+"有A驾驶执照,车子开动了。");
}
else
{
Console.WriteLine(name+"无A驾驶执照,不能开车。");
}
}
static void Main()
{
teacher t=new teacher();
dirveCar("教师",t);
dirveBus("教师",t);
student s=new student();
dirveCar("学生",s);
dirveBus("学生",s);
}
}
输出:
教师有A或B驾驶执照,车子开动
教师有A驾驶执照,车子开动了。
学生有A或B驾驶执照,车子开动
学生无A驾驶执照,不能开车。