请问B obj = new A();中B和A的关系?

ScorpioZZR 2004-06-26 12:18:35
在“B obj = new A();”中,B应该是A的父类,对吗?
那它的含义是什么呢?能不能用中文来描述一下?谢谢
...全文
297 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomuno 2004-06-27
  • 打赏
  • 举报
回复
B obj = new A();

A()是B的构造函数
raymond323 2004-06-27
  • 打赏
  • 举报
回复
A最好是接口
lqtflwg718 2004-06-27
  • 打赏
  • 举报
回复
是引用关系啊!
octopus1 2004-06-27
  • 打赏
  • 举报
回复
B是A的父类,A的方法覆盖B的方法
blasterboy 2004-06-27
  • 打赏
  • 举报
回复
B一般来说,最好的是A得借口,而不是A的父类
因为这样可以动态的换掉B,而不是依赖,具体的B,
编程要依赖接口,尽量不要依赖具体的类!
temptation81 2004-06-27
  • 打赏
  • 举报
回复
我不同意JetGeng(Geng)说的第2条说法:B是一个抽象类,而A是该抽象类的一个实现。
抽象类是不能被实例化的,我个人认为,A是B的一个内隐类,这里发生了A到B的“向上转型”,这样做B无法碰触到A的内部实现细节,但可以把A类型的对象当作B类型来用。
InnocentBoy 2004-06-27
  • 打赏
  • 举报
回复
赞同JetGeng(Geng)的说法!
JetGeng 2004-06-27
  • 打赏
  • 举报
回复
这里可以有三种情况。
1、B是A的父类。
2、B是一个抽象类,而A是该抽象类的一个实现。
3、B是一个接口,而A是一个实现了该接口的类。
shuneng 2004-06-27
  • 打赏
  • 举报
回复
B是 obj的静态型别
A是 obj的动态型别
B类型在程序运行中存放在栈中,A类型信息则存放在堆中。
ScorpioZZR 2004-06-26
  • 打赏
  • 举报
回复
不错的比方!
rainfall19831109 2004-06-26
  • 打赏
  • 举报
回复
就如这样,我定义了一个Thread的子类subThread
实例化的时候我指定一个新的对象A:Thread A=new subThread()
因为subThread是Thread的子类,所以可以用Thread来声明A
当然,你用subThread来声明A也是可以的,这里的声明只是指定A的类型而已
vipxch 2004-06-26
  • 打赏
  • 举报
回复
delphi中
(汽车类型)B (汽车类型变量)obj=
new (此处可以是<1>抽象的汽车类B,也可以是具体的某种汽车类B'<比如说轿车类
BBb\>) A();
jxufewbt 2004-06-26
  • 打赏
  • 举报
回复
B是A的父类,在面向对象语言中,凡是出现了父类对象的地方,都可以用子类对象代替;
特定父类任何子类的实例都可以被父类变量引用

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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