Term
|
Definition
Hiding implementation details from users of software to maintain flexibility of possible change in future implementations of software. |
|
|
Term
How do you implement encapsulation? |
|
Definition
Keep instance variables private, make public accessor & mutator methods, |
|
|
Term
What is a IS-A relationship? |
|
Definition
it is based on inheritance. eg - horse is type of animal. |
|
|
Term
What is Has-A relationship? |
|
Definition
A HAS-A B if class A has a reference to an instance fo class B. |
|
|
Term
How is a HAS-A shown in UML ? |
|
Definition
As a dotted line from the method that calls the method of another class of the same signature. It feels to outsides like the class which has-a has the functionality eventhough it doesnt. |
|
|
Term
Can constructors be overridden? |
|
Definition
No constructors can only be over loaded |
|
|
Term
When can you not override a method? |
|
Definition
if it is constructor or a final method? |
|
|
Term
what must a subclass of abstract class do in order to be concrete? |
|
Definition
the subclass must override all abstract methods. |
|
|
Term
what happens if a subclass is stored in reference of super class and an overridden method is called on the reference? |
|
Definition
the subclass method gets invoked. |
|
|
Term
why cant overriding method have more restrictive modifier than a superclass modifier? |
|
Definition
If the subclass has more restrictive modifier then it wont be callable from the super class reference which is not allowed. |
|
|
Term
what will happen if an overriden method is given a more restrictive modifier than superclass method? |
|
Definition
|
|
Term
what are the rules for overriding a method? |
|
Definition
access modifier : cant be more restrictive.
return type: must be same
argument list: must be exactly the same
|
|
|
Term
What are the rules for throwing exceptions? |
|
Definition
Overriding method cant throw broader exception though it may throw a narrower exception. |
|
|
Term
Can you override a private method? |
|
Definition
No if a method is not visible it cant be overriden |
|
|
Term
How do you invoke a super class version of a method? |
|
Definition
|
|
Term
what are the requirements of an overloaded method? |
|
Definition
Only that it change its return type. |
|
|
Term
How does a compiler determine what type of methods can be called on an object. |
|
Definition
by looking at the reference type. Only when methods are overridden that compiler will call the method of sub type |
|
|
Term
can access type of overloaded method change? |
|
Definition
yes it can . be careful if method's acess type is changed it becomes overloaded but not overridden. |
|
|
Term
When is a class given a default constuctor? |
|
Definition
when there is no constructor written by the programmer. |
|
|
Term
will a class have a no arg constructor if there is already a constructor which takes arguments? |
|
Definition
no no no . You take on constructore responsibility by defining a constructor. |
|
|
Term
can constructor be private? |
|
Definition
yes it can. it only means it cant be instantiated from the outside. |
|
|
Term
are constructor names case sensitive? |
|
Definition
yes constructor name must match exactly the class name |
|
|
Term
can constructors have return types? |
|
Definition
NO NO NO. this is a good thing. |
|
|
Term
can you have a method with the same name as constructor |
|
Definition
legal but stupid. If you see a return type then it is a method not a constructor. it will compile. |
|
|
Term
is there any restriction on this() or super calls in a constructor? |
|
Definition
YES they bust be the first line of code. |
|
|
Term
what does the constructor insert as the first line of the constructor? |
|
Definition
if there is no this() it inserts a call to super(). so Object.super() will always be invoked. |
|
|
Term
can yo u call an instance method in a constructor? |
|
Definition
yes but not before super() has run. |
|
|
Term
can static variables be acessed before a super() call? |
|
Definition
yes. static can but the other one cant |
|
|
Term
can an abstract class have constructors? |
|
Definition
Yes an abstract class must have constructors and they must get called before the concrete class. |
|
|
Term
can an interface have a constructor? |
|
Definition
NO - they are not part of an objects inheritance tree. |
|
|
Term
can a constructor be invoked from within a instance method. |
|
Definition
no it cant be invoked on this. |
|
|
Term
what is the access modifier of the default constructor? |
|
Definition
it is same at the access modifier of the class. |
|
|
Term
what happens if the super class doesnt have a no arg constructor? |
|
Definition
in that case you must put in a call to super(args). |
|
|
Term
what does a call to this() mean? |
|
Definition
it means we are calling a constructor of this class. |
|
|
Term
if you have a call to this() then does the super() method get called. |
|
Definition
you are only delaying the inevitable sooner or later the super() will get called |
|
|
Term
can the return type of the overridden method be generalised? |
|
Definition
no it must match the return type of super class method exactly. |
|
|
Term
can you return null for a method that returns an object? |
|
Definition
Yes you can no matter what type of object you can return null |
|
|
Term
are there any implicit conversion rules for return types? |
|
Definition
anythign that can be implicitly be converted can be returned. eg. char instread of int |
|
|
Term
can you return an array where an object is expected. |
|
Definition
yes an array is also an object so new int[] counts. |
|
|