学习C#类的实例化 和方法的问题
using System;
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
class A
{
public void F()
{
Console.WriteLine("A.F");
}
public virtual void G()
{
Console.WriteLine("A.G");
}
}
class B:A
{
new public void F()
{
Console.WriteLine("B.F");
}
public virtual void G()
{
Console.WriteLine("B.G");
}
}
class test
{
static void Main(string[] args)
{
B b = new B();
A a = b;
a.F();
b.F();
a.G();
b.G();
}
}
}问题如下:
1:B b = new B();这是类B 实例化b
A a = b; 那么这个语句是么意思?
2: a.F();
b.F();
a.G();
b.G();
a,b 都是类的实例化对象,我认为类属性可以这样写a.F(); 类的方法也可以这样写吗?
3:这个程序的执行结果是:
A.F
B.F
A.G
B.G
但是 书上说是:
A.F
B.F
B.G
B.G
具体应该是那一个呢?为什么?
using System;
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
class A
{
public void F()
{
Console.WriteLine("A.F");
}
public virtual void G()
{
Console.WriteLine("A.G");
}
}
class B:A
{
new public void F()
{
Console.WriteLine("B.F");
}
public virtual void G()
{
Console.WriteLine("B.G");
}
}
class test
{
static void Main(string[] args)
{
B b = new B();
A a = b;
a.F();
b.F();
a.G();
b.G();
}
}
}问题如下:
1:B b = new B();这是类B 实例化b
A a = b; 那么这个语句是么意思?
2: a.F();
b.F();
a.G();
b.G();
a,b 都是类的实例化对象,我认为类属性可以这样写a.F(); 类的方法也可以这样写吗?
3:这个程序的执行结果是:
A.F
B.F
A.G
B.G
但是 书上说是:
A.F
B.F
B.G
B.G
具体应该是那一个呢?为什么?
结果应该是:
A.F
B.F
A.G
B.G
如果是你们书上的这种结果:应该把子类的
public virtual void G()
{
Console.WriteLine("B.G");
}
修改为
public override void G()
{
Console.WriteLine("B.G");
} 就是你们书上这种结果了