i need to get the value of the property which is in the base class of the instance of the object, without setting the child classes property to retrieve it from the parent, possible?
3 に答える
ここで継承を誤解している可能性があると思います。少し説明させてください。これをすでに知っている場合は、事前にお詫び申し上げます。その場合、質問はおそらくいくつかの明確化を使用できます。これは、あなたが求めているように聞こえるからです。ある基本クラスから継承する派生クラスがある場合、その派生クラスは基本クラスと同じプロパティをすべて持ちます。例えば:
public class Square
{
public int xSize { get; set; }
}
public class Rectangle : Square
{
public int ySize { get; set; }
}
と宣言すれば、そのままRectangle rect = new Rectangle()
アクセスできます。これができないのは、xSize が非公開の場合だけです。Square クラスから xSize を取得したからといって、親クラスから取得する必要があるわけではありません。それはそれ自身を持っています。ここでの用語が「親」や「継承」などの言葉を使用するのには理由があります。誰かがあなたの父の目を持っていると言ったとしても、それはあなたが文字通り彼の目を使っているという意味ではありません。それはあなたが彼からそれらを継承したので、それらが同じであることを意味します. ここでも同じです。派生クラスは親クラスからプロパティを借用しません。基本クラスが持つすべてのプロパティに加えて、指定した追加のプロパティがすべて含まれています。rect.xSize
rect.ySize
次のような 2 つのクラスがあるとします。
public class Parent
{
public int Age { get; set; }
}
public class Child : Parent
{
// This will get the 'base' class property
public int AgePlusFive { get { return base.Age + 5; } }
}
...後で、 Child クラスから Age プロパティを取得したい他の場所で、次のように言います。
Child child = new Child();
int age = child.Age;
int agePlusFive = child.AgePlusFive;