举个例子,假设你有一个父类 Person 和一个子类 Student,其中父类有一个方法 getName,子类重写了该方法,如下所示:
class Person {
protected String name
public String getName() {
return name
}
}
class Student extends Person {
@Override
public String getName() {
return "Student: " + name
}
}
然后你可以这样使用父类的引用变量调用子类重写的方法:
Person person = new Student()
System.out.println(person.getName())
这将输出 "Student: [name]",因为调用的是子类重写的方法。
另外,在调用重写的方法时,方法中使用的属性也是子类重写的属性。例如,在上面的例子中,如果你在子类中重写了 name 属性,那么调用 getName 方法时将使用子类重写的 name 属性。
在 Java 中,如果一个子类重写了父类的方法,则可以使用父类的引用变量调用子类的重写方法。这种调用方法的机制被称为动态绑定,它允许在运行时根据对象的实际类型来调用方法。
你可以使用父类的引用变量来引用子类的对象,例如:
Person person = new Student()
在这个例子中,person 是一个 Person 类型的引用变量,但它实际上引用了一个 Student 类型的对象。当你使用这个引用变量调用方法时,将调用子类重写的方法,而不是父类中定义的方法。
例如,假设你有一个父类 Person 和一个子类 Student,其中父类有一个方法 getName,子类重写了该方法,如下所示:
class Person {
protected String name
public String getName() {
return name
}
}
class Student extends Person {
@Override
public String getName() {
return "Student: " + name
}
}
然后你可以这样使用父类的引用变量调用子类重写的方法:
Person person = new Student()
System.out.println(person.getName())
这将输出 "Student: [name]",因为调用的是子类重写的方法。
另外,在调用重写的方法时,方法中使用的属性也是子类重写的属性。例如,在上面的例子中
1.你需要调用的另一个类的变量.必须是全局变量.\x0d\x0a 2.User user = new User()\x0d\x0a 3.定义为public.通过user.name就可以拿到user类里面的name变量\x0d\x0a 4.定义为private 那么就必须在user类里面添加name变量的set,get方法,通过user.getName()方法拿到user里面的name变量\x0d\x0a5.方法还有好多种.......如果另一个类的变量是静态变量,用 类名.变量名 调用\x0d\x0a如果是public的变量,先创建另一个类的对象,用 对象名.变量名 调用\x0d\x0a如果是private的变量,用set、get方法操作对象\x0d\x0a还可以利用反射机制操作变量