社区
Java SE
帖子详情
父类引用子类对象 转换及与多态的关系
GUI007
2012-01-08 10:50:29
对象转型中,父类引用类型变量可以指向子类对象但是不能访问子类对象新增加的成员(属性和方法),但是在多态中,为什么又是可以访问重新的方法的呀??
重写的方法与子类新增加的方法有什么区别呢??
是不是这个概念呢,虽然子类重写的父类的方法,但是不属于新增方法么??
...全文
150
7
打赏
收藏
父类引用子类对象 转换及与多态的关系
对象转型中,父类引用类型变量可以指向子类对象但是不能访问子类对象新增加的成员(属性和方法),但是在多态中,为什么又是可以访问重新的方法的呀?? 重写的方法与子类新增加的方法有什么区别呢?? 是不是这个概念呢,虽然子类重写的父类的方法,但是不属于新增方法么??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lliiqiang
2012-01-09
打赏
举报
回复
系统动态判断方法覆盖
Artist Coder
2012-01-09
打赏
举报
回复
[Quote=引用 3 楼 gui007 的回复:]
我的意思说,方法重写,父类方法的代码 、子类方法的代码应该都是CODE seg 区域的吧
只是说父类中的对方法的指向变了,是这个概念呢??
并且在多态中是可以调用子类重写的方法的,讲个天真点问题,如果我能让其他方法的指向也变了,那我是不是子类新增的方法我就可以使用了呢?
[/Quote]
不存在指向这么一说吧,5楼的解释很形象,只是父类引用调用方法的时候,如果子类方法有重写父类方法,会自动去调用子类的方法而不是父类的方法。
0xfather
2012-01-09
打赏
举报
回复
这就是方法重写的作用,其实在指向了子类之后,其实使用的是子类对象,而子类要调用父类的方法就需要先重写父类的方法,然后才能使用重载的方式再添加相同名称的方法,这就是多态了
Ciffer
2012-01-09
打赏
举报
回复
调用是通过引用(父类)去调用内存块中的对象(子类),父类中并没有子类扩展的方法。
通俗的的讲:引用是遥控器,对象是电视机。 虽说电视机有很多功能,但你遥控上没有那么多对应的按钮,一样是没用的。
GUI007
2012-01-08
打赏
举报
回复
我的意思说,方法重写,父类方法的代码 、子类方法的代码应该都是CODE seg 区域的吧
只是说父类中的对方法的指向变了,是这个概念呢??
并且在多态中是可以调用子类重写的方法的,讲个天真点问题,如果我能让其他方法的指向也变了,那我是不是子类新增的方法我就可以使用了呢?
Artist Coder
2012-01-08
打赏
举报
回复
[Quote=引用楼主 gui007 的回复:]
对象转型中,父类引用类型变量可以指向子类对象但是不能访问子类对象新增加的成员(属性和方法),但是在多态中,为什么又是可以访问重新的方法的呀??
重写的方法与子类新增加的方法有什么区别呢??
是不是这个概念呢,虽然子类重写的父类的方法,但是不属于新增方法么??
[/Quote]
ps:如果方法签名一样,那么子类的这个方法就会覆盖父类中相同的方法,调用的时候还是可以调用的。
Artist Coder
2012-01-08
打赏
举报
回复
重写的方法的方法签名一定要和父类的方法完全一样,如果方法签名不一样,就属于新增的方法,
方法的签名包括方法名、方法参数列表
java
父类
获取
子
类对象
_Java
多态
性详解——
父类
引用
子
类对象
面向对象编程有三个特征,即封装、继承和
多态
。封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。继承是为了重用
父类
代码,同时为实现
多态
性作准备。那么什么是
多态
呢...
多态
,
父类
引用
接收
子
类对象
调用方法,(属性封装,方法
多态
)
什么是
多态
: ...
父类
型的
引用
可以指向new出的
子
类型的对象,但不能调用
子
类中的方法,如果需要会进行强制类型
转换
,
父类
转
子
类。 具有继承
关系
的父
子
类,
父类
中的public非静态方法在
子
类中被重写,则用
父类
Java_继承与
多态
(
父类
引用
指向
子
类对象
?
子
类
引用
指向
父类
对象?傻傻分不清楚)
永远记住:不管
父类
子
类之间如何
转换
,永远是
父类
引用
指向
子
类对象
,
子
类
引用
指向
父类
对象,需要将
父类
对象强制
转换
为
子
类! 举例: public class Animal{} //
父类
class Dog extends Animal{} //
子
类 public class...
怎么理解C++
多态
的“
父类
指针或
引用
指向
子
类对象
”?
父类
指针或
引用
指向
子
类对象
假设我们现在有如下的类,其中Animal为基类,Cat和Dog都是其派生类。 class Animal{ public: virtual void speak(){ cout << "动物在说话" << endl; } }; class ...
父类
引用
指向
子
类对象
详解
父类
引用
指向
子
类对象
父类
引用
指向
子
类对象
指的是: 例如
父类
Animal,
子
类Cat,Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的
子
类。 Animal animal = new Cat(); 即声明的是
父类
,实际指向的...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章