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');
}
?>