How to override correctly a class in child-theme

Hi, I have a theme, which uses custom class for doing some stuff and I need to change some parts of code. I use child theme, so I thought that if there is a file named "hook.php" and it begins with:

if (! class_exists ( 'DH_Hook' )) :
	class DH_Hook {
		public function __construct(){
			if(!is_admin()){
				add_action('init', array(&$this,'init'));
				add_action( 'init', array( &$this, 'layered_nav_init' ) );

				//custom body class
				add_filter('body_class', array(&$this,'body_class'));

				add_action( 'template_redirect', array( &$this, 'template_redirect' ) );

				if(!is_admin())
					add_action( 'template_redirect', array( &$this, 'add_navbar_search' ) );

				//Offcanvas open button
				//allow shortcodes in text widget
				add_filter('widget_text', 'do_shortcode');

				add_filter( 'wp_list_categories', array(&$this,'remove_category_list_rel') );
				add_filter( 'the_category', array(&$this,'remove_category_list_rel') );

				//user
				if(apply_filters('dh_user_login_modal', true)){
					add_action('wp_footer', array(&$this,'user_login_modal'));
				}
				add_action('wp_footer', array(&$this,'facebook_init'));
				add_action('login_form', array(&$this,'facebook_login_button'));
				add_action('login_footer',array(&$this,'facebook_init') );
				add_action('login_enqueue_scripts', array(&$this,'custom_login_css'));

				add_action('dh_facebook_login_button', array(&$this,'facebook_login_button'),11);
				add_action('dh_facebook_login_button', array(&$this,'facebook_login_or'),10);

				//newsletter
				if(dh_get_theme_option('popup_newsletter',1)){
					add_action('wp_footer', array(&$this,'newsletter_modal'));
				}

So I will simply copy it, required it once in my functions.php without the first condition it would work as desired, but it doesn't, it keeps up displaying Fatal error: Call to undefined function dh_get_theme_option() and so on.

How I can override a class correctly? Thanks a lot for your help!