不用编辑器,回复你的答案~~

HDNGO 2008-12-15 04:10:38
加精
到处闲逛,看到两个前年的帖子,还真琢磨了一会的~~发上来给大家品品~~

要求:不用编辑器,回复你的答案,不带赖皮的哇~~


第一部分
1.

using System;

class A
{
public virtual void Foo()
{
Console.WriteLine("Call on A.Foo()");
}
}

class B : A
{
public virtual void Foo()
{
Console.WriteLine("Call on B.Foo()");
}
}

class C : B
{
public override void Foo()
{
Console.WriteLine("Call on C.Foo()");
}
}

class D
{
static void Main()
{
A c1 = new C();
c1.Foo();
Console.ReadLine();
}
}


2.

using System;

class A
{
public virtual void Foo()
{
Console.WriteLine("Call on A.Foo()");
}
}

class B : A
{
public override void Foo()
{
Console.WriteLine("Call on B.Foo() " );
}
}

class C : B
{
public new void Foo()
{
Console.WriteLine("Call on C.Foo()");
}
}

class D
{
static void Main()
{

A c1 = new C();
c1.Foo();
Console.ReadLine();
}
}


3.

using System;

class A
{
public virtual void Foo()
{
Console.WriteLine("Call on A.Foo()");
}
}

class B : A
{
public virtual new void Foo()
{
Console.WriteLine("Call on B.Foo() " );
}
}

class C : B
{
public override void Foo()
{
Console.WriteLine("Call on C.Foo()");
}
}

class D
{
static void Main()
{
A c1 = new C();
c1.Foo();
Console.ReadLine();

}
}





无耻分割线
===========================================
第二部分:
1.

interface IGrandFather
{
void F();
}
class Father:IGrandFather
{
public void F()
{
Console.WriteLine("\nFather.");
}
}
class Children:Father
{
public new void F()
{
Console.WriteLine("\nChildren.");
}
}
class Test
{
public static void Main(string[] args)
{
IGrandFather gf = new Children();
gf.F();
}
}


2.

interface IGrandFather
{
void F();
}
class Father:IGrandFather
{
public virtual void F()
{
Console.WriteLine("\nFather.");
}
}
class Children:Father
{
public override void F()
{
Console.WriteLine("\nChildren.");
}
}
class Test
{
public static void Main(string[] args)
{
IGrandFather gf = new Children();
gf.F();
}
}


3.

interface IGrandFather
{
void F();
}
class Father:IGrandFather
{
public virtual void F()
{
Console.WriteLine("\nFather.");
}
}
class Children:Father
{
public void F(string arg)
{
Console.WriteLine("\nChildren:{0}",arg);
}
}
class Test
{
public static void Main(string[] args)
{
IGrandFather gf = new Children();
gf.F();
}
}


4.

interface IGrandFather
{
void F();
}
abstract class Father:IGrandFather
{
public void F()
{
Console.WriteLine("\nFather.");
}
}
class Children:Father
{
public void F()
{
Console.WriteLine("\nChildren.");
}
}
class Test
{
public static void Main(string[] args)
{
IGrandFather gf = new Children();
gf.F();
}
}


5.

interface IGrandFather
{
void F();
}
abstract class Father:IGrandFather
{
public virtual void F()
{
Console.WriteLine("\nFather.");
}
}
class Children:Father
{
public void F()
{
Console.WriteLine("\nChildren:{0}");
}
}
class Test
{
public static void Main(string[] args)
{
IGrandFather gf = new Children();
gf.F();
Console.ReadLine();
}
}


6.

interface GrandFather
{
void F();
}
class Father:GrandFather
{
public void F()
{
Console.WriteLine("\nFather.");
}
}
class Children:Father,GrandFather
{
public new void F()
{
Console.WriteLine("\nChildren");
}
}
class Test
{
public static void Main(string[] args)
{
GrandFather gf = new Children();
gf.F();
Console.ReadLine();
}
}


7.

using System;

class A
{
public virtual void F(string p)
{
Console.WriteLine(p);
}
}
class B:A
{
public void F(ref string p)
{
Console.WriteLine("ref:"+p);
}
}
class Test
{
public static void Main(string[] args)
{
string s = "xxxx";
B b = new B();
b.F(s);
b.F(ref s);
}
}


结果是次要的 原理是重要的.
...全文
2562 173 打赏 收藏 转发到动态 举报
写回复
用AI写文章
173 条回复
切换为时间正序
请发表友善的回复…
发表回复
happycatwmc 2009-05-05
  • 打赏
  • 举报
回复
有点晕,回家好好研究。学习!
535cheng110 2009-05-01
  • 打赏
  • 举报
回复
留下慢慢看
aiqin7 2009-04-28
  • 打赏
  • 举报
回复
学习一下 哈哈
陈义源 2009-01-21
  • 打赏
  • 举报
回复
[Quote=引用 166 楼 gj121 的回复:]
用一下生活的例子解释一下类的多态性:

爸爸如果有一套房子留给了儿子,并对儿子说:这个房子我装修了一下,如果你不喜欢这个风格,可以自己再重新翻新一下,但是我就有一个要求,就是这个房子唯一不变就是我喜欢的挂在走廊墙上的一张油画,你不许拆掉它。儿子欣然同意,拿到钥匙去看了看房子,儿子有点对爸爸的审美产生了质疑,装修的风格也太古朴了,于是儿子决定把客厅和卧室全部装修了,改成了后现代主义的风格,这时发生…
[/Quote]

。。。。。。
jean7155 2009-01-12
  • 打赏
  • 举报
回复
结贴了啊?我没有看到,竟然能回复啊?
没有答案不厚道啊!
jean7155 2009-01-12
  • 打赏
  • 举报
回复
有点晕,mark
gj121 2008-12-26
  • 打赏
  • 举报
回复
用一下生活的例子解释一下类的多态性:

爸爸如果有一套房子留给了儿子,并对儿子说:这个房子我装修了一下,如果你不喜欢这个风格,可以自己再重新翻新一下,但是我就有一个要求,就是这个房子唯一不变就是我喜欢的挂在走廊墙上的一张油画,你不许拆掉它。儿子欣然同意,拿到钥匙去看了看房子,儿子有点对爸爸的审美产生了质疑,装修的风格也太古朴了,于是儿子决定把客厅和卧室全部装修了,改成了后现代主义的风格,这时发生了我们所说的多态的第一种方式,被称为重写或覆写,爸爸给房子时,把允许重新装修的地方用virtual关键字修饰,儿子就可以用override关键字修饰那些允许重新装修的房间,这时父亲来到这个房子时会发现房子的客厅和卧室全部改变了。装修完客厅和卧室后,儿子怎么看都觉得走廊上的油画太格格不入了,因为油画的内容是田园风情,这时儿子想起爸爸不让动这幅画,所以儿子想到了一个方法,就买了一副新的抽象派的油画盖在爸爸的画上面,这样爸爸如果来到家,想看自己的画,也是存在的,这时发生的就是第二种方式,如果爸爸想在儿子的房子里看自己的东西,就使用base关键字,儿子的新油画用new关键字隐藏住爸爸的话。
ziyouren521125 2008-12-24
  • 打赏
  • 举报
回复
晕了@-@
cyh424 2008-12-23
  • 打赏
  • 举报
回复
学习
zhangyanming119 2008-12-23
  • 打赏
  • 举报
回复
呵呵,说的好啊
GS1T74wjwpg 2008-12-23
  • 打赏
  • 举报
回复
俺会第一题选A
^_^
override 木学过
哈和
skinft 2008-12-23
  • 打赏
  • 举报
回复
蒙一个答案。答案是0
呵呵!
xlhrest 2008-12-22
  • 打赏
  • 举报
回复
学习下!``哈哈
Teng_s2000 2008-12-22
  • 打赏
  • 举报
回复
Mark
fstar2007 2008-12-22
  • 打赏
  • 举报
回复
这个很好
tidelgl 2008-12-22
  • 打赏
  • 举报
回复
怎么有这么样的要求?为何不让用编辑器?
owgogm 2008-12-22
  • 打赏
  • 举报
回复
ddddddddddddddddddddd
owgogm 2008-12-22
  • 打赏
  • 举报
回复
ddddddddddd
iSenger 2008-12-22
  • 打赏
  • 举报
回复
weweriri 2008-12-21
  • 打赏
  • 举报
回复
没明白 要仔细研究一下
加载更多回复(148)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧