美文网首页
由Android 自定义dialog的变量赋值问题引发的自己对

由Android 自定义dialog的变量赋值问题引发的自己对

作者: KingVic | 来源:发表于2018-07-19 11:14 被阅读0次

    首先先做一个测试:
    1.创建父类:

       public abstract class BaseTest {
    
          public BaseTest() {
              initData();
          }
    
          public abstract void initData();
      }
    

    2.创建子类:

       public class Test extends BaseTest {
    
          private int a = 3;
    
          @Override
          public void initData() {
              a= 5;
          }
    
          public int getA(){
              return a;
          }
      }
    

    3.实例化并取值:

      Test test = new Test();
      int a = test.getA();
      Log.i("Test", a +"");// 此时a的值是3。
    

    原因:
    1.首先加载父类,初始化父类的静态成员变量和静态代码块
    2.初始化子类静态方法和静态代码块
    3.执行子类构造方法的super方法,super会实例化父类对象即初始化父类里面的成员变量,构造代码块,然后是父类构造方法
    4.实例化子类即初始化子类的成员变量,构造代码块,最后执行子类的构造方法

    综上,当实例化Test的时候会先执行BaseTest 的构造方法,BaseTest的构造方法会调用intiData,此时会给a赋值为5。之后执行Test的成员变量的初始化,所以a的值被赋值为了3.

    相关文章

      网友评论

          本文标题:由Android 自定义dialog的变量赋值问题引发的自己对

          本文链接:https://www.haomeiwen.com/subject/wnwzpftx.html