C# 语言中,基类和子类的实例化问题

如果A是某一基类,B是A的一个子类。下面两种初始化的区别:(1)Aaa=newB();(2)Baa=newB();谢谢回答。。。... 如果A是某一基类,B是A的一个子类。
下面两种初始化的区别:
(1)A aa = new B();

(2)B aa = new B();
谢谢回答。。。
展开
 我来答
风在生8
2013-06-28 · 超过19用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:50.4万
展开全部
A aa = new B()虽然是创建的B对象,但是还是A类型,所以只能用A中的属性和方法,
B aa = new B()创建和保存都是B类型,所以能用B中的属性和方法
而前者如果要用B中的属性和方法那么只需要强转一下类型就行了B bb = (B)aa;
百度网友cdf48d1a7
2013-06-28 · 超过19用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:56.3万
展开全部
A aa = new B();这样创建的是A的对象,虽然指向的是B,但它还是基类的对象,所以aa只能点出来A的属性和方法。
B aa = new B();创建的是B的对象,aa可以点出来B类中特有的属性和方法。
更多追问追答
追问
第一种情况aa可以使用B中的字段和方法吗?

同问第二种情况。
追答
不可以用B类的方法和字段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
推荐于2016-07-18 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:895万
展开全部
1、直白地解释就是:
通过已有的类(class)创建出该类的一个对象(object),这一过程就叫做类的实例化。

2、打个比方:
设计了一个飞机模型,交给工人师傅去加工制作,生产出一个(一批)飞机。飞机模型就相当于程序中的类,生产出来的飞机就是对象,生产飞机这一过程就叫做类的实例化。
MyPlane plane1= new MyPlane(); //类的实例化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
y85171642
推荐于2016-06-02 · TA获得超过130个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:78.5万
展开全部
A aa = new B();
声明的是A的对象aa = 实例化 B ,但实际内存空间开辟的是B类 的大小。利用了面向对象的多态性质。

区别是,A 声明的aa不能直接调用B独有的(不是继承过来的)成员方法,或者 成员变量。如果想用的话 需要强制类型转换!
追问
那声明的aa可调用B中公共成员吗?
可以访问A中公共和私有成员吗?欢迎补充。。。
追答
B是继承自A的,所以aa可以调用A中的成员,至于权限的话,只能调用公有的,但是继承的时候可以访问保护权限的。
B的实例 aa 调用B自身的公有成员就更没问题了。前提是要强制类型转换。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式