This would depend on the way the plugin was structured. If it is just procedural then your pretty much out of luck. If it is written within a class you can extend or create a new instance of it and override methods. As an example in my media tools plugin I use a portion of Regenerate Thumbnails by calling
if ( class_exists( 'Regenerate_Thumbnails' ) {
$regen = new Regenerate_Thumbnails();
$regen->class_method();
$regen->another_method();
}
}
To override a method:
if ( class_exists( 'Regenerate_Thumbnails' ) {
My_Class extends Regenerate_Thumbnails {
function __construct() {
parent::__construct();
}
parent_function_to_override() {
//do stuff
}
}
}
$barorfoo = new My_Class();
$barorfoo->parent_function_to_override();
Again this totally depends on the way the parent plugin is constructed.