题目:
定义一个Employee类,有两个虚方法 eat(),sleep()都是无参数,
*有一个子类Dev继承Employee.覆盖类eat方法
*还有一个子类HouJin继承了Employee,覆盖了sleep方法
*在Main方法 定义Dev对象、HouJin对象,分别赋值Employee的引用
然后都调用eat,sleep方法
class Employee
{
public virtual void eat()
{
}
public virtual void sleep()
{ }
}
class Dev : Employee
{
public override void eat()
{
}
}
class HouJin : Employee
{
public override void sleep()
{
}
}
static void Main(string[] args)
{
Dev D = new Dev();
D.eat();
D.sleep();
HouJin H = new HouJin();
D.eat();
D.sleep();
}
个人不明白“在Main方法 定义Dev对象、HouJin对象,分别赋值Employee的引用
然后都调用eat,sleep方法”这句话?所以代码就不怎麽懂了~
定义一个Employee类,有两个虚方法 eat(),sleep()都是无参数,
*有一个子类Dev继承Employee.覆盖类eat方法
*还有一个子类HouJin继承了Employee,覆盖了sleep方法
*在Main方法 定义Dev对象、HouJin对象,分别赋值Employee的引用
然后都调用eat,sleep方法
class Employee
{
public virtual void eat()
{
}
public virtual void sleep()
{ }
}
class Dev : Employee
{
public override void eat()
{
}
}
class HouJin : Employee
{
public override void sleep()
{
}
}
static void Main(string[] args)
{
Dev D = new Dev();
D.eat();
D.sleep();
HouJin H = new HouJin();
D.eat();
D.sleep();
}
个人不明白“在Main方法 定义Dev对象、HouJin对象,分别赋值Employee的引用
然后都调用eat,sleep方法”这句话?所以代码就不怎麽懂了~
{
Dev D = new Employee ();
D.eat();
D.sleep();
HouJin H = new Employee ();
H.eat();
H.sleep();
}
static void Main(string[] args)
{
Dev D = new Employee();
D.eat();
D.sleep();
HouJin H = new Employee();
D.eat();
D.sleep();
}
{
Employee e = new Dev();
e.eat();
e.sleep(); e = new HouJin();
e.eat();
e.sleep();
} 是这意思才对.呵呵.不好意思
你可以运行下面代码看一下输出结果using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Employee e = new Dev();
e.eat();
e.sleep(); e = new HouJin();
e.eat();
e.sleep();
Console.ReadKey();
}
} class Employee
{
public virtual void eat()
{
Console.WriteLine("Employee.eat");
}
public virtual void sleep()
{
Console.WriteLine("Employee.sleep");
} }
class Dev : Employee
{
public override void eat()
{
Console.WriteLine("dev.eat");
}
}
class HouJin : Employee
{
public override void sleep()
{
Console.WriteLine("houjin.sleep");
}
}
}
输出:
/*
dev.eat
Employee.sleep
Employee.eat
houjin.sleep
*/
2楼的代码根本编译不过。
如果加了强制类型转换,编译是能通过了,运行的时候会出现exception
namespace My_lei
{
class Program
{
static void Main(string[] args)
{
Employee e = new Dev();
e.eat();
e.sleep(); e = new HouJin();
e.eat();
e.sleep();
Console.ReadKey();
}
class Employee
{
public virtual void eat()
{
Console.WriteLine("Employee.eat");
}
public virtual void sleep()
{
Console.WriteLine("Employee.sleep");
} }
class Dev : Employee
{
public override void eat()
{
Console.WriteLine("dev.eat");
}
}
class HouJin : Employee
{
public override void sleep()
{
Console.WriteLine("houjin.sleep");
}
}
LZ请参详.....
也就是new一个对象然后再实现相应的方法。