java创建子类对象设置并调用父类的变量

通过子类调用父类的变量,有两种方法:

1.把父类的变量设置成public:

package triangle.opengl.wlz.stu.childusefathervariable;

import android.util.Log;

public class BasePublicVariable {
    private String TAG = getClass().getName();
    public int data;
    public void ptData(){
        Log.d(TAG, "ptData: " + data);
    }
}

当我们这样做时,需要时直接在对象中设置这个变量的值就可以了,子类不需要任何处理:

package triangle.opengl.wlz.stu.childusefathervariable;

import triangle.opengl.wlz.stu.childusefathervariable.BasePublicVariable;

public class ChildPublicVariable extends BasePublicVariable {

}

2.通过构造方法透传:

package triangle.opengl.wlz.stu.childusefathervariable;

import android.util.Log;

public class BaseVariableInConstructed {
    private String TAG = getClass().getName();

    private int data;
    public BaseVariableInConstructed(int data){
        this.data = data;
    }
    public void ptData(){
        Log.d(TAG, "ptData: " + data);
    }
}

这时,子类可以使用super方法,调用父类的构造方法:

package triangle.opengl.wlz.stu.childusefathervariable;

import android.util.Log;

public class ChildVaralbleInConstructed extends BaseVariableInConstructed {
    public ChildVaralbleInConstructed(int data) {
        super(data);
    }
}

最终的使用方式:

package triangle.opengl.wlz.stu.childusefathervariable;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        test();
    }

    private void test(){
        ChildVaralbleInConstructed base = new ChildVaralbleInConstructed(100);
        base.ptData();

        ChildPublicVariable base2 = new ChildPublicVariable();
        base2.data = 10;
        base2.ptData();
    }
}

猜你喜欢

转载自blog.csdn.net/u010029439/article/details/88141390
今日推荐