社区
Java SE
帖子详情
父类和子类的疑惑~
baggio785
2006-01-16 12:44:50
类B是类A的子类,那么下面这么语句中
A myclass = new B()
myclass到底是那个类的对象呢?
...全文
543
33
打赏
收藏
父类和子类的疑惑~
类B是类A的子类,那么下面这么语句中 A myclass = new B() myclass到底是那个类的对象呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
爱编程的小猫
2006-01-20
打赏
举报
回复
A a = new B();
表示B是A类型的,假如A还有个子类C,那么A c=new C();也是A类型的.
但是假如B里头有个自己的方法getB(),C类里头有个自己的方法getC();
那么a.getB(),c.getC()都是正确的.
这么做还有个主要的用途是在反射机制中用到的.
success_dream
2006-01-19
打赏
举报
回复
看java 的上溯造型吧,这是java的精髓
baggio785
2006-01-19
打赏
举报
回复
经典的帖子
挑大梁
2006-01-18
打赏
举报
回复
A是B的父类,A是B实例的一个引用,再用A的时候,注意A是谁的实例
sea820326
2006-01-18
打赏
举报
回复
可发调用B类的方法 A类的变量
RainYang
2006-01-17
打赏
举报
回复
寒TinyJimmy(Jimmy) 一个,不过说的很多.
男人 a = new 男人();
-- 这里 a 代表男人, 是有小jj的男人
真的很强啊,哈哈
Mr_Yang
2006-01-17
打赏
举报
回复
up
beijixing022
2006-01-17
打赏
举报
回复
寒TinyJimmy(Jimmy) 一个,不过说的很多.
男人 a = new 男人();
-- 这里 a 代表男人, 是有小jj的男人
人 a = new 男人();
-- 这里 a 代表人, 有没有小jj, 下面的使用着不知道, 也不需要知道.
再补充一句,如果以后试图访问a的小jj,就会有编译错误,因为编译器不知道a是一个男人(虽然他是一个男人),编译器只把a当成一个人来看.
不能使用这样的语句哦,a.xjj.pee,语法错误,哈哈
===========================================================
形象,生动,两位强人,小弟佩服!
supergoalcn
2006-01-17
打赏
举报
回复
A myclass = new B();
有两种可能
1)A是B的父类
2)B实现了接口A
leekooqi
2006-01-17
打赏
举报
回复
这就是java的一大特性,多态。。。。
是B 的对象。
leekooqi
2006-01-17
打赏
举报
回复
这就是java的一大特性,多态。。。。
是B 的对象。
appleangle
2006-01-17
打赏
举报
回复
楼上两位形容果然是强中之强。小弟佩服了
zzk05711
2006-01-17
打赏
举报
回复
不错,不错,理解变清晰了。
jeffaple
2006-01-17
打赏
举报
回复
呵呵,比喻的不错,很生动嘛
shenpipi
2006-01-17
打赏
举报
回复
寒TinyJimmy(Jimmy) 一个,不过说的很多.
男人 a = new 男人();
-- 这里 a 代表男人, 是有小jj的男人
人 a = new 男人();
-- 这里 a 代表人, 有没有小jj, 下面的使用着不知道, 也不需要知道.
再补充一句,如果以后试图访问a的小jj,就会有编译错误,因为编译器不知道a是一个男人(虽然他是一个男人),编译器只把a当成一个人来看.
不能使用这样的语句哦,a.xjj.pee,语法错误,哈哈
TinyJimmy
2006-01-17
打赏
举报
回复
男人 a = new 男人();
-- 这里 a 代表男人, 是有小jj的男人
人 a = new 男人();
-- 这里 a 代表人, 有没有小jj, 下面的使用着不知道, 也不需要知道.
wmzsl
2006-01-17
打赏
举报
回复
A myclass = new B()
和
B myclass = new B()
有什么区别呢?
*********************************************注意了
A myclass = new B() !! myclass在编译的时候是A类,在运行的时候是B类这样的好处就是为了多态
B myclass = new B() !! myclass在运行的时候和编译的时候都是B类,所以对多态没有支持!
你要问为什么,那就是为了多态!java编程思想对这种有很好的介绍你可以参考一下
dukcho
2006-01-17
打赏
举报
回复
是B对象,但是调用中只能当A类型使用。
这样做的好处是将接口的定义和程序的实现分开,即:
InterfaceA a = new ImplementA();
这样如果你要更换InterfaceA的实现,就可以换成:
InterfaceA a = new ImplementB();
但是程序的其他部分不用更换。
superslash
2006-01-16
打赏
举报
回复
B的对象
xjylsr
2006-01-16
打赏
举报
回复
是A的对象,但是是B负责创建的,只能使用子类里的继承和重写的变量和方法,新增的都不能使用
加载更多回复(13)
1.java中super关键字的应用
没看那篇博客额情况下请勿下载,觉得还弄不清楚可以联系我.
J2EE部分
疑惑
基础知识总结.doc
J2EE部分
疑惑
基础知识总结.docJ2EE部分
疑惑
基础知识总结.doc
图解Java继承内存分配
继承的基本概念: (1)Java不支持多继承,也是说
子类
至多只能有一个
父类
。 (2)
子类
继承了其
父类
中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)
子类
中定义的成员变量和
父类
中定义的成员变量相同时,则
父类
中的成员变量不能被继承。 (4)
子类
中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与
父类
的某个成员方法完全相同,则
父类
的成员方法不能被继承。 分析以上程序示例,主要
疑惑
点是“
子类
继承
父类
的成员变量,
父类
对象是否会实例化?私有成员变量是否会被继承?被继承的成员变量在哪里分配空间?” 1:虚拟机加载ExtendsD
Java继承构造器使用过程解析
主要介绍了Java继承构造器使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java类实例化顺序[项目代码]
本文通过示例代码详细解析了Java类实例化时JVM的执行顺序。文章首先介绍了类加载器的基本概念,随后通过父
子类
的实例化过程,展示了静态代码块、成员变量赋值和构造方法的执行顺序。示例代码中,
父类
和
子类
分别包含静态代码块、成员变量初始化和构造方法,通过输出结果清晰地展示了JVM在实例化时的执行流程。文章还简要分析了JVM在加载、连接和初始化阶段的操作,特别是连接阶段对成员变量赋默认值和初始化阶段对成员变量赋值的顺序。最后,作者提供了交流群信息,方便读者进一步讨论。
Java SE
62,625
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章