C# Programming - Inheritance - Discussion

Discussion Forum : Inheritance - General Questions (Q.No. 2)
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
Explanation:
No answer description is available. Let's discuss.
Discussion:
17 comments Page 1 of 2.

Sandeep said:   6 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
@Karthi.

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
Hi,

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

Mash said:   9 years ago
@Pavan.

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:   9 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:   9 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.

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

It is directly used it.

Ajesh said:   1 decade ago
What is base.i?


Post your comments here:

Your comments will be displayed after verification.