Java Programming - Declarations and Access Control - Discussion

Discussion Forum : Declarations and Access Control - Pointing out the correct statements (Q.No. 5)
5.
class A 
{ 
    A( ) { } 
} 

class B extends A 
{ }
Which statement is true?
Class B'S constructor is public.
Class B'S constructor has no arguments.
Class B'S constructor includes a call to this( ).
None of these.
Answer: Option
Explanation:

Option B is correct. Class B inherits Class A's constructor which has no arguments.

Option A is wrong. Class B inherits Class A's constructor which uses default access.

Option C is wrong. There is just no implicit call to this( ).

Discussion:
11 comments Page 1 of 2.

Vandit said:   3 years ago
@All.

Constructors are not members, so they are not inherited by subclasses, but the constructor of the superclass can be invoked from the subclass.

Nikhil said:   8 years ago
One constructor cannot inherit another constructor in any case.

Dablu Gupta said:   1 decade ago
Can anyone please explain about initialization of a float object.

Meaning of these two lines:.

Float f1[ ], f2[ ];

F1 = new float[10];

Dablu Gupta said:   1 decade ago
Can anyone please explain about initialization of a float object.

Syed Shahzad said:   1 decade ago
public class A {
A() {
System.out.println("A");
}
}

public class B extends A{

}

1. Class B if in the same package as of A.

2. Class B constructor default access is public.

3. Class B constructor will make call class A default constructor, here class A has explicit constructor declared with default access so it will be executed as a first thing in constructor B.

4. According to me option is correct at all.

Inayath said:   1 decade ago
If we are not providing any constructor compiler will place a default(no arg constructor) and call to it's super class constructor.

Compiler provide following code for B class as follows.

class B extends A{
B(){
super();
}
}

So constructors are not inherited although they are chained.

Ejunika said:   1 decade ago
class A
{
A( ) { }
}

class B extends A
{ }

Can any one tell me that B's constructor is public or not?

Rakesh said:   1 decade ago
There is implicit call to base class constructor from each derived class constructor . Using keyword super() it calls base class constructor . "super();" is first statement of every derived class constructor either we provide explicitly or it is provided by JVM implicitly.

Ashok said:   1 decade ago
Then how the super class constructor will be executed when we create the object for sub class.

Aditya said:   1 decade ago
constructors are NOT inherited in subclass....


Post your comments here:

Your comments will be displayed after verification.