+ 2
We can't creat object for abstract class but inside abstract class we can create constructor what is the use of this constructor
what is use of abstract class constructor ?
10 Réponses
+ 1
The use of the constructor of an abstract class is the same for the use of a constructor in a non-abstract class. It's still going to be called, you don't need to create the object for the constructor to be useful.
You use a constructor to initialize anything necessary upon creation of the object.
The abstract class can contain default members for all sub classes. Review the use of an abstract class / why use one.
Here's a good explanation on abstract classes in general:
http://www.javacoffeebreak.com/faq/faq0084.html
+ 2
When creating an object of a sub class the base class constructor is always invoked.
Consider the following:
abstract class a{
a(){
System.out.println("A called");
}
}
class b extends a{
b(){
System.out.println("B called");
}
}
public class program{
public static void main(String args[]){
b objB = new b();
}
}
Output:
A called
B called
You can also call the base class constructor with the super keyword.
super();
+ 2
Thanks @faith, the link is very pretty cleared explanation.
Thanks for your explanation also.👍
+ 2
@Abhishek
"Hence you can't have abstract class constructors"
What do you mean by this? You can. You just have to have a constructor that has no arguments so the super() can be called. Or did I read that wrong?
Edit:
I'm wrong to say you have to have a no argument constructor. Disregard that, for anyone reading. Although, You can still have many abstract constructors.
+ 2
That's a default constructor. For any class if you do not create a constructor the compiler creates one for you.
Sorry, what I meant to say before is if you made a constructor with arguments, you would also need to make one without arguments.
Yup, never mind. You don't have to have a no argument constructor if you call it explicitly, you're right about that. Though, you can still have abstract constructors.
+ 1
but we can't create object of abstract class right, so what is the use of constructor in abstract class?even though normal class also do the same but what special in abstract class?
+ 1
an abstract class is intended to be a superclass and wenever objects of its subclasses are created then super() is the first statement in the subclass constructor which is inserted by the compiler if u don't explicitly call super() with or without arguments.. hence u can't have abstract constructors even in abstract classes
+ 1
BTW even if u don't supply ur constructor in abstract class compiler can still resolve a call to super()
+ 1
this case wud be wen u dont explicitly call super() with arguments in subclass constructor
0
now correct I guess @faith