写一个子类赋值给父类的实例代码
时间: 2024-12-13 08:28:07 浏览: 14
在面向对象编程中,你可以创建一个父类的对象,并将其引用指向子类的一个实例。这通常通过构造函数的隐式转换或者明确地使用类型强制转换来完成。以下是一个简单的例子,假设我们有一个`Animal`父类和一个`Dog`子类:
```java
class Animal {
public void makeSound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("狗汪汪叫");
}
}
public class Main {
public static void main(String[] args) {
// 创建一个Dog类型的对象
Animal myDog = new Dog(); // 显式类型转换
// 或者使用构造函数传参
Animal myDog2 = new Dog();
// 现在我可以使用myDog调用Dog特有的makeSound方法
myDog.makeSound(); // 输出 "狗汪汪叫"
// 因为Animal是Dog的超类,所以myDog也是一个Animal类型的实例
((Dog)myDog).makeSound(); // 输出 "狗汪汪叫" (注意这里需要强制转型)
}
}
```
在这个例子中,`myDog`实际上是`Dog`类型的对象,但是由于它被声明为`Animal`类型,所以我们只能访问`Animal`的公共方法。通过显式或隐式转换成`Dog`类型,我们可以访问到`Dog`特有的`makeSound()`方法。
阅读全文