社区
Java SE
帖子详情
父类和子类的疑惑~
baggio785
2006-01-16 12:44:50
类B是类A的子类,那么下面这么语句中
A myclass = new B()
myclass到底是那个类的对象呢?
...全文
538
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关键字的应用
总结起来,`super`关键字在Java中扮演着连接
子类
和
父类
的关键角色,它使得我们可以方便地调用
父类
的构造器、成员变量和方法。理解并合理使用`super`是学习Java多态和继承的重要部分。如果你在实际使用中遇到问题或对...
J2EE部分
疑惑
基础知识总结.doc
重写发生在
子类
中,
子类
的方法与
父类
的某个方法有相同的名称、返回类型和参数列表,但可以有不同的实现。重写是为了实现多态性,使得
子类
可以提供自己的行为。而重载则是在同一类中,通过不同的参数列表来创建多个...
图解Java继承内存分配
继承的基本概念: ... 分析以上程序示例,主要
疑惑
点是“
子类
继承
父类
的成员变量,
父类
对象是否会实例化?私有成员变量是否会被继承?被继承的成员变量在哪里分配空间?” 1:虚拟机加载ExtendsD
Java继承构造器使用过程解析
我们知道,构造器用于创建对象,那么突然产生
疑惑
:关于创建一个
子类
对象时,是否会先创建
父类
对象?经过查找资料,得出结论:并没有。在创建
子类
对象时,会把
父类
的成员变量和方法加载进内存,既然要加载,便调用...
Java类实例化顺序[项目代码]
Java是一种广泛使用的面向对象编程语言,其类的实例化...最后,作者在文章中提供了交流群信息,使得对Java类实例化顺序感兴趣的读者可以加入到讨论组中,与其他开发者交流心得和
疑惑
,进一步深化理解和掌握这一知识点。
Java SE
62,629
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章