
JAVA方法重写后为什么会执行一些功能,比如继承Thread类后,为什么就会自动执行run方法?
应该是Thread内部机制自动执行run()方法,但MyThreadextendsThread后,重写run()方法为什么也会自动执行?说白了,就是方法重写中,子类为什么...
应该是Thread内部机制自动执行run()方法,但MyThread extends Thread后,重写run()方法为什么也会自动执行?说白了,就是方法重写中,子类为什么会执行父类的功能?
展开
展开全部
如果你是实现Runnable接口然后new Thread类然后执行start()会调用Thread中的run(),但是你点开源码就知道了.
Thread中的run方法是先判断你传进来的类是否是null然后if里面就是你的run(),
你想了解线程具体的可以去看Thread的构造函数还有里面有一个核心方法init()方法。
如果是继承的话就是直接用你重写的run方法了,因为是继承关系所以继承类也继承了start()方法,简单说就是继承类可以看做是一个Thread.clone
Thread中的run方法是先判断你传进来的类是否是null然后if里面就是你的run(),
你想了解线程具体的可以去看Thread的构造函数还有里面有一个核心方法init()方法。
如果是继承的话就是直接用你重写的run方法了,因为是继承关系所以继承类也继承了start()方法,简单说就是继承类可以看做是一个Thread.clone
展开全部
子类继承了父类的 变量 和 方法
你重写了run()方法 会把父类的run()方法覆盖
他当然会执行你的run()方法.
你重写了run()方法 会把父类的run()方法覆盖
他当然会执行你的run()方法.
追问
但是我用子类的对象调用子类的方法,跟父类有什么关系?
追答
子类继承父类,是先把父类的变量和方法完全复制一遍,然后是你写的变量方法。你用子类的对象调用子类的方法,但父类的构造函数在子类里也有,父类的变量分配完了,方法走一遍(在子类里复制的那个),才轮到你写的方法 什么的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询