如何在java中设置继承变量?

Bor*_*lis 1 java inheritance extends class

public class Atribut {
int classid;

@Override public String toString() {
return Integer.toString(classid);


}

}
Run Code Online (Sandbox Code Playgroud)

我已经创建了这个类来覆盖方法toString().我计划制作许多具有不同classid的子类.问题是我不知道如何设置变量classid在toString方法中工作.

public class cas extends Atribut{
int classid=2;


}
Run Code Online (Sandbox Code Playgroud)

问题是如果我创建一个cas对象和toString方法,它返回"0"而不是"2".

Dan*_*den 8

我首选的技术是使用构造函数参数:

public class Parent {
    // Using "protected final" so child classes can read, but not change it
    // Adjust as needed if that's not what you intended
    protected final int classid;

    // Protected constructor: must be called by subclasses
    protected Parent(int classid) {
        this.classid = classid;
    }

    @Override
    public String toString() {
        return Integer.toString(classid);
    }
}

public class Child extends Parent {
    public Child() {
        // The compiler will enforce that the child class MUST provide this value
        super(2); 
    }
}
Run Code Online (Sandbox Code Playgroud)