the_content(); of custom post type treated as an array or object

single-book.php should not have a custom query in it. WordPress has already queried the correct post, so new WP_Query( $args ) is completely unnecessary.

Your problem is that you’re missing the loop.

At the bare minimum single-book.php should have:

<?php while ( have_posts() ) : the_post(); ?>

    <h1><?php the_title(); ?></h1>

    <?php the_content(); ?>

<?php endwhile; ?>