キーワード | 役割 |
---|---|
abstract |
抽象クラスであることの宣言 |
sealed |
継承の禁止 |
partial |
クラスの分割定義 |
abstract
抽象クラスになり、直接のインスタンス化の禁止。
abstract_sample.cs
abstract class MyAb
{
// Hanbetsuメソッドは抽象メソッド
public abstract double Hanbetsu(double a, double b, double c);
}
class MyHanbetsu: MyAb
{
// 基本クラスの抽象メソッドは必ずオーバーライドする
public override double Hanbetsu(double a, double b, double c)
{
return Math.Pow(b, 2.0) - 4.0 * a * c;
}
}
- abstractクラスにメソッドの実装は可能
sealed
継承を禁止したい場合は、sealed
キーワードを付ける
sealed_sample.cs
sealed class MyClass
{
}
partial
クラスの定義内容を機能毎に分割して、それぞれ別のファイルとして保存できる
partial1.cs
using System;
partial class MyClass
{
public int x;
}
class Partial01
{
public static void Main()
{
MyClass mc = new MyClass();
mc.x = 10;
mc.Show();
}
}
partial2.cs
using System;
partial class MyClass
{
public void Show()
{
Console.WriteLine("x = {0}", x);
}
}
以下でコンパイルする
terminal
csc partial1.cs partial2.cs