What is the difference between this() and super()?

Answer Posted / 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



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What Is Query Throttling in java?

564


What is an example of declaration?

525


Can I use % with real numbers?

564


What are 3 boolean operators?

535


What is t in generics in java?

561






Why are parameters used in functions?

534


How do you write a good declaration?

493


When should a function throw an exception?

599


Give few difference between constructor and method?

519


Explain about varargs in java?

583


Compare overloading and overriding?

561


What is e java?

557


how to split string in java?

655


Howto get an object that will perform date & time calculations then format it for output in some different locales with different date style.can ne1 tel me the answer of this question.pls

1446


What is java life cycle?

539