Inheritance Output Questions

https://javaconceptoftheday.com/java-inheritance-practice-coding-questions/


1) 

Class A

{
    int i = 10;
}
 
class B extends A
{
    int i = 20;
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        A a = new B();
 
        System.out.println(a.i);
    }
}

Answer : 10

2)

class A
{
    {
        System.out.println(1);
    }
}
 
class B extends A
{
    {
        System.out.println(2);
    }
}
 
class C extends B
{
    {
        System.out.println(3);
    }
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        C c = new C();
    }
}

Output
1
2
3

3)

class A
{
    String s = "Class A";
}
 
class B extends A
{
    String s = "Class B";
 
    {
        System.out.println(super.s);
    }
}
 
class C extends B
{
    String s = "Class C";
 
    {
        System.out.println(super.s);
    }
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        C c = new C();
 
        System.out.println(c.s);
    }
}

output:
Class A
Class B
Class C

4)

class A
{
    static
    {
        System.out.println("THIRD");
    }
}
 
class B extends A
{
    static
    {
        System.out.println("SECOND");
    }
}
 
class C extends B
{
    static
    {
        System.out.println("FIRST");
    }
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        C c = new C();
    }
}

Output:
THIRD
SECOND
FIRST

5) 

class A
{
    public A()
    {
        System.out.println("Class A Constructor");
    }
}
 
class B extends A
{
    public B()
    {
        System.out.println("Class B Constructor");
    }
}
 
class C extends B
{
    public C()
    {
        System.out.println("Class C Constructor");
    }
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        C c = new C();
    }
}

Answer :
Class A Constructor
Class B Constructor
Class C Constructor


6) 

class X
{
    public X(int i)
    {
        System.out.println(1);
    }
}
 
class Y extends X
{
    public Y()
    {
        System.out.println(2);
    }
}

Error : Write explicit calling statement to super class constructor in Class Y constructor.
need to insert super(1);


8) 

class M
{
    int i = 51;
 
    public M(int j)
    {
        System.out.println(i);
 
        this.i = j * 10;
    }
}
 
class N extends M
{
    public N(int j)
    {
        super(j);
 
        System.out.println(i);
 
        this.i = j * 20;
    }
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        N n = new N(26);
 
        System.out.println(n.i);
    }
}

Answer :
51
260
520

9)

class M
{
    int i;
 
    public M(int i)
    {
        this.i = i--;
    }
}
 
class N extends M
{
    public N(int i)
    {
        super(++i);
 
        System.out.println(i);
    }
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        N n = new N(26);
    }
}

output
27

10)

public class MainClass
{
    public MainClass(int i, int j)
    {
        System.out.println(method(i, j));
    }
 
    int method(int i, int j)
    {
        return i++ + ++j;
    }
 
    public static void main(String[] args)
    {
        MainClass main = new MainClass(10, 20);
    }
}

O/P 31


11)

class A
{
    static int i;
 
    static
    {
        i++;
    }
 
    {
        ++i;
    }
}
 
class B extends A
{
    static
    {
        --i;
    }
 
    {
        i--;
    }
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        System.out.println(new B().i);
    }
}

Answer 0


12) 

class X
{
    static void staticMethod()
    {
        System.out.println("Class X");
    }
}
 
class Y extends X
{
    static void staticMethod()
    {
        System.out.println("Class Y");
    }
}
 
public class MainClass
{
    public static void main(String[] args)
    {
        Y.staticMethod();
    }
}
Answer :
Class Y

Comments