为了账号安全,请及时绑定邮箱和手机立即绑定

这代码是如何运行的?

这代码是如何运行的?

strange丶 2017-11-18 14:01:26
 class A {   String x;   {   System.out.println("---A的非静态语句块---");   }   static{   System.out.println("---A的静态语句块---");   }   public void print(){   System.out.println("---A中不带参数的print方法---");   }   public void print(String x){   System.out.println("---A中带参数的print方法,参数值未xx---");   }   public A(){   String x="软件工程";   System.out.println("---A中的无参构造方法---");   } } class B extends A{ int x; public void print(int x){ System.out.println("---B带参数的方法-- 参数值zzz"); } static{ System.out.println("---B的静态语句块---"); } { System.out.println("---B中的非静态语句块---"); } } public class java{ public void main(String args[]){ B a=new B(); a.print(); } }
查看完整描述

1 回答

已采纳
?
_夕晨踏雪

TA贡献40条经验 获得超16个赞

一般而言,执行顺序为

父类静态代码块-->子类静态代码块-->父类非静态代码块-->父类构造方法-->子类非静态代码块-->子类构造方法

查看完整回答
反对 回复 2017-11-18
  • strange丶
    strange丶
    它不是只是从运行出口开始运行的?为什么那些没有没调用的也会运行的?
  • _夕晨踏雪
    _夕晨踏雪
    这是java类的机制,子类从父类继承而来,如果父类不完整,子类肯定也是不完整的,所以要先调用父类的构造方法。
  • _夕晨踏雪
    _夕晨踏雪
    不过你说得对,确实是从入口开始执行的,但是执行过程中会跳转到其他地方。
点击展开后面4
  • 1 回答
  • 0 关注
  • 1190 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信