多态实现挑战:在Java中,如何保证父类引用指向子类实例?
在Java中,通过以下方式可以保证父类引用指向子类实例:
继承(Inheritance):
父类(Superclass)定义了一些方法和属性,并将它们声明为公共的、受保护的或私有的。子类(Subclass)继承父类的所有非-private成员。创建对象:
通过子类的全名或者通过父类的引用来创建子类的对象。例如:
// 父类
public class Animal {
// 公共方法
public void speak() {
System.out.println("Animal speaks");
}
}
// 子类(Dog是Animal的子类)
public class Dog extends Animal {
// 重写父类的方法
@Override
public void speak() {
System.out.println("Dog barks");
}
}
// 创建子类对象并调用方法
public class Main {
public static void main(String[] args) {
// 通过Animal的引用创建Dog对象
Dog dog = new Dog();
// 父类引用指向子类实例
Animal animalRef = dog;
// 调用子类的方法
animalRef.speak();
}
}
当你运行这段代码时,会看到输出 “Dog barks”,这说明父类引用(animalRef)确实指向了子类对象(dog)。
还没有评论,来说两句吧...