java 中子类调用父类方法,父类中this是怎么调用的,终于清楚了!!!!
2021/4/15 12:26:58
本文主要是介绍java 中子类调用父类方法,父类中this是怎么调用的,终于清楚了!!!!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. parent父类与child子类
public class parent { public void add(){ System.out.println("A add..."); } public void addAll(){ System.out.println("A add ALL..."); this.add();-----------------------------------------这里调用的是子类 this.hello();---------------------------------------这里调用的是父类 System.out.println(this.getClass()); } public void hello(){ System.out.println("hello"); } }
public class child extends parent{ @Override public void add() { // TODO Auto-generated method stub System.out.println("B add..."); super.add(); } @Override public void addAll() { // TODO Auto-generated method stub System.out.println("B add ALL..."); super.addAll(); } }
2. main方法
public class main { public static void main(String[] args) { child c = new child();---------------------------这里实例化的是子类 c.addAll(); } }
先说一下流程:首先实例化的是子类,自始自终都没有实例化父类对象,this的简单理解就是当前对象的引用。然后它调用了子类的addAll()------>通过super关键字调用父类的addAll(),然后重点来了,父类中的this .add()这里打印出来的this不应该是父类对象,因为子类中重写了父类的方法,尽管父类的方法并没有失效,但是this会优先因为重写去子类中寻找add()方法(如果一开始实例化的是父类对象,那么this.add就会自然的调用自身父类的add,这很好理解),第二句this.hello(),因为子类中不存在hello()重写,也就会到父类自身中去寻找hello()方法。---------总之this关键字会优先根据实例化的对象去寻找该对象的方法,父类使用this调用取决于子类中是否有同样的重写方法(覆盖了)。如果没有就会调用自身的方法。!!!!!
这篇关于java 中子类调用父类方法,父类中this是怎么调用的,终于清楚了!!!!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 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副业入门:初学者的实战指南