标题:多态性请教
只看楼主
freebirdbo
Rank: 1
等 级:新手上路
帖 子:256
专家分:0
注 册:2005-3-27
 问题点数:0 回复次数:4 
多态性请教
class classA{}
class classB:A{}
classA a=new classB()
那么实例a 就具有多态性 是吗?
如果是这样的话 干吗不直接
classA a=new classA()
呢????
搜索更多相关主题的帖子: 多态性 
2006-11-01 17:53
lsj2000
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2004-11-25
得分:0 
要使用虚方法

我是初学者,有什么不周之处还望各位大虾指点一二。
2006-11-01 18:12
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 

[QUOTE]当派生类从基类继承时,它会获得基类的所有方法、字段、属性和事件。若要更改基类的数据和行为,您有两种选择:可以使用新的派生成员替换基成员,或者可以重写虚拟的基成员。
使用新的派生成员替换基类的成员需要使用 new 关键字。如果基类定义了一个方法、字段或属性,则 new 关键字用于在派生类中创建该方法、字段或属性的新定义。new 关键字放置在要替换的类成员的返回类型之前。例如:
public class BaseClass
{
public void DoWork() { }
public int WorkField;
public int WorkProperty
{
get { return 0; }
}
}
public class DerivedClass : BaseClass
{
public new void DoWork() { }
public new int WorkField;
public new int WorkProperty
{
get { return 0; }
}
}
使用 new 关键字时,调用的是新的类成员而不是已被替换的基类成员。这些基类成员称为隐藏成员。如果将派生类的实例强制转换为基类的实例,就仍然可以调用隐藏类成员。例如:

DerivedClass B = new DerivedClass();
B.DoWork(); // Calls the new method.
BaseClass A = (BaseClass)B;
A.DoWork(); // Calls the old method.
[/QUOTE]


飘过~~
2006-11-01 19:59
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
得分:0 
1,用虚方法
2,子类有重写的同名方法
3,new 什么,就是什么

Viva,espana!
2006-11-01 20:31
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
得分:0 

弄清型和值的关系,类型就是类型class A 说明a是class类型的, new就是要分配内存地址,是值了


闯出自己的天空
2006-11-02 13:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-100169-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.876875 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved