Index: /trunk/abdev/BasicCompiler_Common/include/Method.h
===================================================================
--- /trunk/abdev/BasicCompiler_Common/include/Method.h	(revision 351)
+++ /trunk/abdev/BasicCompiler_Common/include/Method.h	(revision 352)
@@ -61,4 +61,6 @@
 	virtual const CClass *GetInheritsClassPtr() const = 0;
 	virtual void SetInheritsClassPtr( const CClass *pInheritsClass ) = 0;
+	virtual bool IsNotUse() const = 0;
+	virtual void SetNotUseMark( bool isNotUse ) = 0;
 };
 
@@ -69,4 +71,7 @@
 	bool isConst;
 	const CClass *pInheritsClass;
+
+	// 他のインターフェイスへ実装が移った場合（基底クラスメソッドのインターフェイス実装）はこのフラグをオンにする
+	bool isNotUse;
 
 	// XMLシリアライズ用
@@ -82,4 +87,5 @@
 		ar & BOOST_SERIALIZATION_NVP( isConst );
 		ar & boost::serialization::make_nvp("pInheritsClass", const_cast<CClass *&>(pInheritsClass));
+		ar & BOOST_SERIALIZATION_NVP( isNotUse );
 	}
 
@@ -91,4 +97,5 @@
 		, isConst( isConst )
 		, pInheritsClass( pInheritsClass )
+		, isNotUse( false )
 	{
 	}
@@ -99,4 +106,5 @@
 		, isConst( method.IsConst() )
 		, pInheritsClass( method.GetInheritsClassPtr() )
+		, isNotUse( false )
 	{
 	}
@@ -138,4 +146,12 @@
 	{
 		this->pInheritsClass = pInheritsClass;
+	}
+	virtual bool IsNotUse() const
+	{
+		return isNotUse;
+	}
+	virtual void SetNotUseMark( bool isNotUse )
+	{
+		this->isNotUse = isNotUse;
 	}
 };
@@ -187,4 +203,12 @@
 	virtual const CClass *GetInheritsClassPtr() const{SetError();return NULL;}
 	virtual void SetInheritsClassPtr( const CClass *pInheritsClass ){SetError();}
+	virtual bool IsNotUse() const
+	{
+		return false;
+	}
+	virtual void SetNotUseMark( bool isNotUse )
+	{
+		SetError();
+	}
 };
 BOOST_CLASS_EXPORT( StaticMethod );
Index: /trunk/abdev/BasicCompiler_Common/src/Class.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Class.cpp	(revision 351)
+++ /trunk/abdev/BasicCompiler_Common/src/Class.cpp	(revision 352)
@@ -459,5 +459,5 @@
 
 	/////////////////////////////////////////////////////////////////
-	// 基底クラスのメソッドからインターフェイスメソッドを再実する
+	// 基底クラスのメソッドからインターフェイスメソッドを再実装する
 	/////////////////////////////////////////////////////////////////
 	BOOST_FOREACH( CMethod *pMethod, GetDynamicMethods() )
@@ -467,4 +467,7 @@
 		{
 			pMethodForOverride->Override( &pMethod->GetUserProc(), pMethod->GetAccessibility(), false );
+
+			// 実装元になるメソッドは呼び出し不可にしておく（オーバーロードの解決から除外する）
+			pMethod->SetNotUseMark( true );
 		}
 	}
Index: /trunk/abdev/BasicCompiler_Common/src/Method.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Method.cpp	(revision 351)
+++ /trunk/abdev/BasicCompiler_Common/src/Method.cpp	(revision 352)
@@ -109,5 +109,5 @@
 	const Methods &methods = *this;
 	for( int i=(int)methods.size()-1; i>=0; i-- ){
-		if( methods[i]->GetUserProc().GetName() == methodName ){
+		if( methods[i]->GetUserProc().GetName() == methodName && methods[i]->IsNotUse() == false ){
 			subs.push_back( &methods[i]->GetUserProc() );
 		}
