C# Programming - Inheritance - Discussion

Discussion Forum : Inheritance - General Questions (Q.No. 2)
Which of the following statements should be added to the subroutine fun( ) if the C#.NET code snippet given below is to output 9 13?
class BaseClass
    protected int i = 13;
class Derived: BaseClass
    int i = 9; 
    public void fun()
        // [*** Add statement here ***]
Console.WriteLine(base.i + " " + i);
Console.WriteLine(i + " " + base.i);
Console.WriteLine(mybase.i + " " + i);
Console.WriteLine(i + " " + mybase.i);
Console.WriteLine(i + " " + this.i);
Answer: Option
No answer description is available. Let's discuss.
17 comments Page 1 of 2.

Govind said:   10 years ago
Where is create object name base ?

It is directly used it.

Sandeep said:   7 years ago
In BaseClass 'i' is local variable, and inside DerivedClass 'i' is again a local variable of it, So, 9 value scope is inside the DerivedClass and 13 scope is outside the DerivedClass, so, to call the base class members we should use "base" keyword console.WriteLine(i+""+base.i);.

Sushil said:   7 years ago
But we can't use base keyword under a static block of a derived class.

Ndikho said:   8 years ago

They might look the same but please check the format should the output(9 13) be.

In case, you not aware, 'base' refers to the base class/superclass. So if you say 'base.i' you refer to base class.

Hope you answered.

Karthi said:   8 years ago

Both option A and B are same. May I know what is the difference between them?

Mash said:   9 years ago

Base is a keyword of c# which is used here to call the I variable of the base class-BaseClass to differ it from the I variable of the derived class-Derived. Whatever, actually it was not necessary to do this if both of the variable were not declared using the same identifier-i.

Amit said:   10 years ago
using System.IO;
using System;

public class BaseClass
public int k = 13;
public class Derived: BaseClass
int i = 9;
public static void Main()
Derived d=new Derived();
Console.WriteLine("{0} {1}",d.i,d.k);

Pavan said:   10 years ago
What is the difference between base.i and mybase.i?

Jana said:   10 years ago
To get output as 9 13,

First you need to get the derived class i value and then you can get the base class i value by object of base class as base.i

Where base is object of BaseClass.

Somu said:   1 decade ago
If I remove protected then it show error. Why?

Post your comments here:

Your comments will be displayed after verification.