要实现不同方法中对象引用的字段返回不同的值,可以使用两种方法:继承和接口。
class Parent {
protected int field;
public int getField() {
return field;
}
}
class Child1 extends Parent {
public Child1() {
field = 1;
}
}
class Child2 extends Parent {
public Child2() {
field = 2;
}
}
public class Main {
public static void main(String[] args) {
Parent obj1 = new Child1();
Parent obj2 = new Child2();
System.out.println(obj1.getField()); // 输出 1
System.out.println(obj2.getField()); // 输出 2
}
}
在这个例子中,通过继承父类并重写父类的方法,可以让不同的子类对象引用的字段返回不同的值。子类对象可以通过父类引用来访问这些字段和方法。
interface MyInterface {
int getField();
}
class MyClass1 implements MyInterface {
private int field = 1;
public int getField() {
return field;
}
}
class MyClass2 implements MyInterface {
private int field = 2;
public int getField() {
return field;
}
}
public class Main {
public static void main(String[] args) {
MyInterface obj1 = new MyClass1();
MyInterface obj2 = new MyClass2();
System.out.println(obj1.getField()); // 输出 1
System.out.println(obj2.getField()); // 输出 2
}
}
在这个例子中,通过实现相同的接口并实现接口方法,可以让不同的类对象引用的字段返回不同的值。类对象可以通过接口引用来访问这些字段和方法。