2013-10-23 8 views
6

クラスAの派生クラスBオブジェクトによるアクセス基本クラスAの関数10.?クラスAのクラスBのオブジェクトにアクセスする方法はありますか?#

Class A 
{ 
    public int Sum(int i) 
    { 
     return i+3; 
    } 
} 

Class B:A 
{ 
    public int Sum(int i) 
    { 
      return i+4; 
    } 
} 

B objectB=new B(); 

int result=objectB.Sum(7); 

output:11 
+0

実行する 'Sum'メソッドの選択が条件付きであるか、' A'の 'sum'メソッドが常に' B'によって呼び出されるべきですか? – NotMe

答えて

8

まだBのコンストラクタを使用している間、代わりにBA変数を宣言します。

A objectB = new B(); 
int result=objectB.Sum(7); 

これはAの方法を使用します。メソッドがシャドーされオーバーライドされないため、これは真です。

また、Sumのメソッドのコンパイラ警告がBにあります。また、隠蔽の意図があることを示すためにpublic new int Sum(int i)と定義することもできます。

+0

あなたは素晴らしい答えを持っています非常にありがとうございます –

+0

私は私のoopsのコンセプトを強くすることができます私に知らせることができますか?ありがとう –

+0

私はそれについて練習と読書以外のものを提供する魔法のトリックを持っていません。それは経験と共に来るでしょう。基本的なことについては、躊躇しないでください。最初はこれらのことをすでに知っていると思うかもしれませんが、より複雑なものを理解するのに役立つ基本概念を固めます。 – Vache

関連する問題