JAVA与C++在继承中的区别(一)
2021/4/14 12:25:12
本文主要是介绍JAVA与C++在继承中的区别(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JAVA与C++在继承中的区别(一)
我们学过C++,在子类(派生类)的实例中,可以通过作用域来调用父类(基类)中被子类同名成员函数隐藏的成员函数;
例如:
#include<iostream> using namespace std; class Father { public: void show() { cout << "This is father.show()!" << endl; } }; class Son:public Father { public : void show() { cout << "This is son.show()!" << endl; } }; int main() { Son s; s.show(); //若想调用父类中同名方法,我们可以这样做,使用作用域运算符 s.Father::show(); } 输出结果: This is son.show()! This is father.show()! C:\Users\Administrator\source\repos\Date\Debug\Test.exe (进程 4272)已退出,代码为 0。 要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试” ->“调试停止时自动关闭控制台”。 按任意键关闭此窗口. . .
自从看到这里,我就在想,能不能使用JAVA进行如同C++这样的操作。
经过查询资料,发现,如果子类没有重写父类的方法,调用父类的方法的时候,实际上是去父类的内存中实现,可以调用父类方法。
如果子类重写了父类的方法,由于内存还是子类,该方法的实现还是在子类,所以用实例化的对象是调用不到父类的,这种情况下,只能用super关键字。
这里就要简单说一下JAVA的多态
Person p=new Son(); /*** 这里是用子类去实例化父类,进而实现多态。 父类和子类中有同名成员函数show(); */ p.show(); //这时,依旧是调用子类重写的方法。 //例如: class Father{ public void show(){ System.out.println("this is person!"); } } class Son extends Father{ @Override public void show() { System.out.println("this is son!"); } public static void main(String[] args){ Father son = new Son(); son.show(); } } 输出结果是: "C:\Program Files\Java\jdk-15\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\lib\idea_rt.jar=11848:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Administrator\IdeaProjects\untitled1\out\production\JavaFxApplication;H:\编程软件\Oracle\ojdbc10-full\ojdbc10.jar sample.Son this is son!
ps.本人资历较浅,若有不对,希望有问题大家指正一下!
目前JAVA反射机制尚未搞懂,若有可以实现该方法,后期追加!!
这篇关于JAVA与C++在继承中的区别(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南