classの外部に公開(public)したくないメソッドがある場合はabstractを使用すればいい。
publicのメソッドのみであれば、
interfaceを使用した方がいい。
interfaceであれば複数の継承が可能なので柔軟。
using System.Windows;
namespace WpfApp
{
/// <summary>
/// MainWindow.xaml の相互作用ロジック
/// </summary>
public partial class MainWindow : Window
{
/// <summary>
/// コンストラクタ
/// </summary>
public MainWindow()
{
// コンポーネントの初期化
InitializeComponent();
Test test = new Test();
test.Proc1("WOW");
MessageBox.Show(test.Proc3("NON"));
}
class Test : AbstractClass
{
/// <summary>
/// 抽象メソッドProc2の実際の処理を定義
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
protected override string Proc2(string val)
{
return val + "!!!";
}
/// <summary>
/// 抽象メソッドProc3の実際の処理を定義
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public override string Proc3(string val)
{
return val + "???";
}
}
/// <summary>
/// abstract class
/// </summary>
abstract class AbstractClass
{
public void Proc1(string val)
{
MessageBox.Show(Proc2(val));
}
/// <summary>
/// class外部に公開したくないメソッド
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
protected abstract string Proc2(string val);
/// <summary>
/// class外部に公開したいメソッド
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public abstract string Proc3(string val);
}
}
}
最終更新:2014年01月31日 23:18