Java Programming - Declarations and Access Control - Discussion

Discussion Forum : Declarations and Access Control - Finding the output (Q.No. 4)
What will be the output of the program?
class Super
    public int i = 0; 

    public Super(String text) /* Line 4 */
        i = 1; 

class Sub extends Super
    public Sub(String text)
        i = 2; 

    public static void main(String args[])
        Sub sub = new Sub("Hello"); 
Compilation fails.
Answer: Option

A default no-args constructor is not created because there is a constructor supplied that has an argument, line 4. Therefore the sub-class constructor must explicitly make a call to the super class constructor:

public Sub(String text)
    super(text); // this must be the first line constructor 
    i = 2; 
9 comments Page 1 of 1.

Sudarshan Kumar said:   1 decade ago
Otherwise declare a default constructor in the Super class.

This is because for calling super class constructor i.e the way that Object is always is our parent class.This is also another cause that compiler provide us default constructor.Compiler provide the default constructor like this .Let A is a class then constructor be like this

public A()

If you declare a constructor by your self then compiler insert a super(); as a first statement.

Sujana said:   1 decade ago
Provide no-arg constructor in super class. A default, no-arg constructor is generated by the compiler only if the class has no constructor defined explicitly.

Ali said:   1 decade ago
Yes, constructor have two types those are,
zero parameter constructor and parameterized constructor.

ex: public Sub(){}
public Sub(int a,int b){}

Jeethu said:   2 years ago

Even if we don't do any initialization why do we get an error, I am not able to understand this problem. Please anyone explain it.

Jilaba said:   1 decade ago
No constructor have not any return type.

If it has return type the compiler does not considered as a constructor.

Overlord said:   10 years ago
We can't initialize an integer inside a class definition.

Mani said:   1 decade ago
Can constructor have any arguments?

Praveen said:   1 decade ago
Can constructor have return type?

Viren said:   7 years ago
Thanks @Overlord.

Post your comments here:

Your comments will be displayed after verification.