首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

类实例的类型转换有关问题

2012-02-20 
类实例的类型转换问题Alias(44133057) 21:37:48using Systemclass A{public void F(){Console.WriteLine(

类实例的类型转换问题
Alias(44133057) 21:37:48
using System;
class A
{
public void F()
{
Console.WriteLine("A.F");
}
}
class B:A
{
void F()
{
Console.WriteLine("B.F")
}
}
class Test
{
static void Main()
{
B b=new B();
A a=b;
a.F();
b.F();
}
}
Alias(44133057) 21:39:14
A a=b; 这里可以这样隐式转换吗??

[解决办法]
基类应该具备的成员,派生类都具备,所以,派生类做本来由基类做的工作,那是没有问题的。
而基类缺少派生类的某些成员,派生类能做的事,基类不一定能做的。


A a=new A();
B b=a;

我觉的这样倒是可以的 ,b的方法很多 ,而b=a ,那麽 b 只有a中的方法
--------------------------------------------
假设这是允许的,我现在要通过b执行一个只有派生类才有的方法,那么它该怎么办?
它事实上不具备这个方法,要做的话,是绝对做不了的,不做的话,又不符合它现在表面上的身份。
[解决办法]
可以的,
有时间看下框架设计,里面对这些写得很清楚,一本不错的书,不容易懂,

热点排行