What is the difference between this() and super()?
Answers were Sorted based on User's Feedback
Answer / amol
this() is used to call another constructor of current class based on the argument list....
super() is used to call the constructor of another class or parent class based on the argument list....
Is This Answer Correct ? | 1 Yes | 0 No |
Answer / kraja
this() should be first statement in the constructor of the
same class and you cannot call this() in other places
Is This Answer Correct ? | 21 Yes | 22 No |
Answer / puneet khanna
this is used to either call another constructor of the same
class whose object is used to call a method; or whose
constructor is being used to instantiate a class.
This refers to the current object whose reference variable
is used to call method or this refers to the current object
in action,
Super refers to the immediate super class, super(); is
itself placed in the constructor of the class whose super
class doesnt has a constructor declared;for consructor
chaining mechanism.
Is This Answer Correct ? | 4 Yes | 5 No |
Answer / b.h srinath
This is a keyword that refers to the present/current class.
Usage of this:
1)it can be used to invoke constructor
syntax:this();
example: public sample
{
this(20);
this.display();
}
It is mandatory that,when we are calling constructor through
'this' it must be first statement in that method or constructor.
2)It is used to access data members
example:
this.len=len;
this bth=bth;
3)It is used to access member methods
example:
this.getvalue();
this.setvalue();
super() keyword:
super is a keyword that refers to super class from a subclass.
That means super can refer to super class
i)super class instance variable
example:System.out.println(super.a);
program: class A
{
int a = 30;
}
class B extends B
{
void show()
{
int a=10;
System.out.println("The a Value in super
class is"+super.a);
System.out.println("The a Value in super
class is"+a);
}
public static void main(String[] args)
{
B b=new B();
b.show()
}
}
ii)super class methods
example:super.setvalue();
program:
class one
{
int x,y,s;
one()
{
System.out.println("First went to one default const of super
class");
}
void show(int a,int b)
{
x=a;
y=b;
System.out.println("\n superclass value X is"+x);
System.out.println("\n superclass value Y is"+y);
}
void gets()
{
s=x+y;
}
}
class two extends one
{
int a,b,c;
two()
{
System.out.println("\n second came to default const of
child class");
}
void show()
{
super.gets();
System.out.println("\n baseclass value is"+s);
}
}
class intmet
{
public static void main(String args[])
{
two t=new two();
t.show(2,3);
t.show();
}
}
iii)super class constructor
example:super(a);
super(a,b) and so on
program:
class one
{
int x;
one()
{
System.out.println("First went to one default const of super
class");
}
one(int x)
{
System.out.println("\nas the supre(a)is referd one parameter
const is printed");
this.x=x;
}
void show()
{
System.out.println("\none parameter const value is"+x);
}
}
class two extends one
{
int x,a;
two()
{
System.out.println("\n second came to default const of
child class");
}
two( int a,int b)
{
super(a);
System.out.println("\ntwo const");
x=b;
}
void show()
{
System.out.println("\ntwo parameter const value is"+x);
super.show();
}
}
class const1
{
public static void main(String args[])
{
two t=new two();
two t1=new two(2,3);
t1.show();
}
}
Is This Answer Correct ? | 1 Yes | 2 No |
How could Java classes direct program messages to the system console, but error messages, say to a file?
What is tostring () method?
When we give defination of interface method in the class why method must be public???
What are different types of control structures?
Integer.parse Int(bf.readLine(System.out.println("enter value for n["+m+"]:"))); can it run under this
Why are parameters used in functions?
Why is String immutable?
How does marker interface provides functionality to the implemented class ? or How dose maker interface gets the functionalities as serialization or cloning.
Write a method that will remove given character from the string?
How do you sing an Applet ?
What is the difference between the jdk 1.02 event model and the event-delegation model introduced with jdk 1.1?
What is the purpose of garbage collection in java, and when is it used?