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".
我首选的技术是使用构造函数参数:
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)