C#コンストラクタ継承
//継承されたクラス.子クラスは親クラスの無参構造関数を呼び出します.下位レベルから、親クラス、親クラスの呼び出しが開始されます.
//1.コンストラクション関数継承の場合は,まずベースクラスのコンストラクション関数メソッドを呼び出し,次に自分のコンストラクション関数メソッドを呼び出す.
//2.サブクラスコンストラクション関数は、親の異なるパラメータの個数を継承するコンストラクション関数です.
public class MyClass
{
public MyClass()
{
Console.WriteLine("MyClass: ");
}
public MyClass(int a, int b)
{
Console.WriteLine("MyClass :a={0}, b={1}.", a, b);
}
}
public class MyClass2 : MyClass
{
public MyClass2()
{
Console.WriteLine("MyClass2: ");
}
public MyClass2(int a, int b)
{
Console.WriteLine("MyClass2 :a={0}, b={1}.", a, b);
}
}
//C#
public class MyClass3 : MyClass2
{
public MyClass3()
{
Console.WriteLine("MyClass3: ");
}
public MyClass3(int a, int b)
{
Console.WriteLine("MyClass3 :a={0}, b={1}.", a, b);
}
}
public class runMyApp
{
static void Main()
{
MyClass3 my = new MyClass3(3, 4);
Console.WriteLine();
}
}
//1.コンストラクション関数継承の場合は,まずベースクラスのコンストラクション関数メソッドを呼び出し,次に自分のコンストラクション関数メソッドを呼び出す.
//2.サブクラスコンストラクション関数は、親の異なるパラメータの個数を継承するコンストラクション関数です.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace
{
//1. , ,
//2.
class Class1
{
public Class1(string a, string b)
{
Console.WriteLine("Class1 2 ,a={0},b={1}", a, b);
}
}
class Class2 : Class1
{
public Class2():base("class2_a","class2_b")
{
Console.WriteLine("Class2 Class1 ");
}
}
class Test
{
static void Main(string[] args)
{
Class2 class2 = new Class2();
}
}
}