コンストラクタ
- Class1を継承したClass2のコンストラクタ
- baseキーワードで継承元のコンストラクタを呼び出す。
class Class1
{
public Class1(int x)
{
}
}
class Class2
{
public Class2(int y) : base(y)
{
}
}
- 継承先のコンストラクタで処理した値で継承元のコンストラクタを呼び出したい場合
- staticメソッドで処理を行い戻り値で継承元のコンストラクタを呼び出す。
|C#|Java|h
class Class1&br;{&br; int x;&br; public Class1(int inValue)&br; {&br; x = inValue;&br; }&br;}&br;&br;class Class2 : Class1&br;{&br; public Class2(int inValue):base(init(inValue))&br; {&br; }&br;&br; static int init(int inValue)&br; {&br; int i = inValue * 2;&br; return i;&br; }&br;} | class Class1 {&br; int x;&br; public Class1(int inValue) {&br; x = inValue;&br; }&br;}&br;&br;class Class2 extends Class1 {&br; public Class2(int inValue) {&br; int i = inValue * 2;&br; super(i);&br; }&br;} |
メソッドのオーバーライド
- 継承元でvirtualキーワードが付いているメソッドを継承先でoverrideキーワードを付けて実装した場合のみオーバーライドされる。
- 継承先でoverrideキーワードを付けなかった場合、継承先のクラスにcastしないと継承元のメソッドが呼ばれる。
定数or読み取り専用
||C#|Java|h
定数 | public const int SIZE = 5; | public static final int SIZE = 5; |
読み取り専用 | private static readonly int[] WEIGHT = new int[] { 3, 1 }; | private static final int[] WEIGHT = new int[] { 3, 1 }; |
| private readonly int[] WEIGHT = new int[] { 3, 1 }; | private final int[] WEIGHT = new int[] { 3, 1 }; |
---|
- 定数
- 読み取り専用
- 参照型はconstに出来ないので、static readonly で宣言する
- staticでない場合は、コンストラクタでの設定も可能
型の対応
|C#|Java|h
System.Text.StringBuilder | java.lang.StringBuffer |
コメントをかく