Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java父类强制转换成子类

作者:发光男神   发布日期:2026-02-19   浏览:41

// 定义一个父类 Animal
class Animal {
    public void makeSound() {
        System.out.println("Some generic animal sound");
    }
}

// 定义一个子类 Dog,继承自 Animal
class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Bark");
    }

    // 子类特有的方法
    public void fetchStick() {
        System.out.println("Fetching stick...");
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建一个 Dog 对象并将其赋值给 Animal 类型的引用
        Animal myDog = new Dog();

        // 将父类引用强制转换为子类
        if (myDog instanceof Dog) {
            Dog dog = (Dog) myDog;
            dog.makeSound();      // 输出: Bark
            dog.fetchStick();     // 输出: Fetching stick...
        } else {
            System.out.println("myDog is not an instance of Dog");
        }

        // 如果直接使用父类引用调用子类特有的方法,会报错
        // myDog.fetchStick();  // 编译错误:找不到符号
    }
}

解释说明:

  1. 定义父类和子类:我们定义了一个 Animal 父类和一个继承自 AnimalDog 子类。Dog 类重写了 makeSound 方法,并添加了自己特有的方法 fetchStick
  2. 创建对象并赋值给父类引用:我们创建了一个 Dog 对象,并将其赋值给 Animal 类型的引用 myDog
  3. 强制类型转换:为了访问子类特有的方法 fetchStick,我们需要将 myDog 强制转换为 Dog 类型。在进行强制转换之前,使用 instanceof 操作符确保 myDog 实际上是一个 Dog 对象,以避免 ClassCastException
  4. 调用子类方法:成功转换后,可以调用 Dog 类中的所有方法,包括从 Animal 继承的方法和 Dog 自己特有的方法。

上一篇:java本地缓存

下一篇:java threadpoolexecutor

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站