Java强制字段继承

and*_*666 0 java inheritance

我知道有很多关于Java继承的线程(我已经读过它了),但它们都代表"它是怎么回事",我需要知识"如何改变它".所以,我们有2个类:

class t1{
 public int a=5;

 public void get(){
    System.out.println(a);
 }
}

class t2 extends t1{
 public int a = 1;
}
Run Code Online (Sandbox Code Playgroud)

现在 :

 t2 z = new t2();
 z.get();
Run Code Online (Sandbox Code Playgroud)

我们得到了 5

它只是示例,但我想要做的是在超类中创建一些常用方法,这些方法将使用继承类中的字段,例如.用户消息

有没有办法做到这一点?如果没有那么为什么我会使用超类,我可以使用其他任何东西吗?

提前致谢

Pet*_*rey 6

你应该使用一个构造函数,可能还有一个getter

class t1{
 public final int a;

 public t1() {
    this(5);
 }
 protected t1(int a) {
    this.a = a;
 }

 public void get(){
    System.out.println(a);
 }
}

class t2 extends t1{
  public t2() {
     super(1);
  }
}
Run Code Online (Sandbox Code Playgroud)

现在

t2 z = new t2();
z.get();
Run Code Online (Sandbox Code Playgroud)

版画 1