How to display specific child page template in wordpress

Try this… Your code is hitting elseif(is_page() && $post->post_parent ) and stopping there.

<?php 
    if(has_children()){ 
        // This is a parent page 
        get_template_part('content', 'parent'); 
    }elseif(is_page() && $post->post_parent ){ 
        // This is a child page of certain parent page
        if(is_child_of(689)){
            // This is a child page of Parent page having id 689  
            get_template_part('content', 'park');
        }else{
            get_template_part('content', 'child');
        }
    }else{
        //This is default for anyother page
        get_template_part('content', 'default'); 
    } 
?>