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.
|
|
|