当前位置: 代码迷 >> J2SE >> 反编译会隐藏子类构造函数里面的super()语句吗?解决方案
  详细解决方案

反编译会隐藏子类构造函数里面的super()语句吗?解决方案

热度:71   发布时间:2016-04-24 01:15:18.0
反编译会隐藏子类构造函数里面的super()语句吗?
这是一个加包后的class反编译出来的代码:

Java code
//父类public abstract class fathr {    private final String kind;    public fathr(String k) {        this.kind = k;        }}//子类public class son extends fathr{        int a,b;    public son() {        super("test");    }        public son(int a,int b)    {        this.a = a;        this.b = b;            }}


在son(int a,int b)的构造语句中没有super()语句,我自己编程试了下,这些代码会直接报错,必须在son(int a,int b)的第一行加上super()才行,请问:
1.这是不是因为反编译软件的问题,隐藏了son(int a,int b)构造方法的super语句?还是其他什么情况?
2.我调用son(int a,int b)方法的话,son.kind能被赋值为“test”吗?

反编译软件叫“Java Decompiler”

------解决方案--------------------
反编译不一定100%恢复原样
Java code
public son() {    super("test");}public son(int a,int b){    this(); //这样也是可以的,所以和super,this应该没关系,看反编译具体如何实现    this.a = a;    this.b = b;        }
  相关解决方案