兔宝宝游戏网 游戏攻略 手游攻略 父类调用子类方法 java,java指向子类的父类对象到底能不能调用子类的方法

父类调用子类方法 java,java指向子类的父类对象到底能不能调用子类的方法

时间:2025-03-12 10:36:30 作者:兔宝宝游戏网 浏览:5

父类调用子类方法,最近不少朋友在找java指向子类的父类对象到底能不能调用子类的方法的相关介绍,兔宝宝游戏网给大家详细的介绍一下,希望对大家有帮助。

1、父类调用子类方法 java:

你这个问题你问的没有太明确,我来大概解释一下吧。
首先你要知道多态的概念,有编译时多态(前期绑定),还有运行时多态(后期绑定),注意:C语言中只有编译时多态,但是java两者都有,java中除了static方法和final方法,其他所有的方法都是后期绑定,类成员变量也是前期绑定的,如果你对java的类初始化顺序有所了解就会明白,所以我们写程序的时候不必去指定是否应该去进行后期绑定,它是自动进行的
注意只有普通方法才可以是多态的,java中类的final方法,static方法,类成员变量,都是在编译的时候已经确定的,如果用父类引用指向子类对象,那么你可以自行代码测试,结论如下:
1.通过父类引用调用子类中重写父类的方法,那么会调用子类的重写方法,
2.通过父类引用调用子类中独有的方法,那么必须把父类引用强制转化成子类类型的引用才能进行调用。
3.通过父类引用调用子类重写父类的静态方法(子类中的这个方法和父类中的这个方法返修饰符,返回类型,方法名,参数列表完全相同,假定认为静态方法也可以重写吧),通过父类引用调用静态方法,不会有多态的特征,调用的还是父类的静态方法,因为java中静态方法和类是绑定的,而不是和单个对象绑定的。
4.通过父类引用调用子类和父类中同名的public变量,那么调用的是父类的成员变量,因为当子类对象转型为父类引用的时候,访问局部变量的操作都由编译器解析,因此不是多态的。子类对象中包含了两个同名的public变量(debug的时候你会看到子类对象中有两个变量),他自己的和他从父类得到的,所以通过父类引用指向子类对象而调用父类和子类同名的public 变量,那么会调用父类的public变量,而不是子类的public变量,因为是前期绑定,编译时候已经确定了调用哪一个,而不是通过父类引动态地选择用到底该调用哪一个变量。
反正记住一点,如果父类引用指向了子类对象,那么通过父类引用调用子类重写父类的普通方法,那么可以直接调用,如果通过父类引用调用子类独有的方法那么就得强制转换。

2、面向对象编程中父类能调用子类的函数吗?:

不能。


但有一种情况比较接近:当父类中声明某个函数为虚函数,并且子类得载了这个虚函数以后,用父类对象的指针可以调用子类的相应函数,但前提是该指针指向的对象是子类的对象,否则没有意义。

总结:以上内容就是针对父类调用子类方法 java,java指向子类的父类对象到底能不能调用子类的方法的详细介绍,大家可以参考一下。

标题:父类调用子类方法 java,java指向子类的父类对象到底能不能调用子类的方法
链接:http://www.qzj2.com/article/43797.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
海龟汤题目和答案全套恐怖高难度,细思极恐的冷门海龟汤

海龟汤题目和答案全套恐怖高难度,细思极恐的冷门海龟汤,细思极恐海龟汤大全及答案汤面:有兄弟三人,感情非常好

2025-03-12
gta5武器秘籍大全(完整版)无限子弹,gta5的武器秘籍有哪些

gta5武器秘籍大全,完整版无限子弹,gta5的武器秘籍有哪些,gta5武器全满代码是:IFWEREARCHMAN。其他秘籍:一、武

2025-03-12
梦幻西游义绝墨魂笔3x攻略(神器义绝墨魂笔之踪攻略)

梦幻西游义绝墨魂笔3x攻略,可以这么说,这个神器是3X神器挑战里最难刷的了,对于没刷过的朋友来说更难,那么怎么刷

2025-03-12
公交车里抓着摇曳的手环诗情,清晨时见雾青草沾雨露是什么歌

公交车里抓着摇曳的手环诗情,清晨时见雾青草沾雨露是什么歌,是马良的《醒着醉》里的歌词。醒着醉作词:马良作

2025-03-12