Wednesday, June 16, 2010

Abstract classes in JAVA..

Can abstract classes exist in JAVA without any abstract methods ?

The answer is yes. It made me curious as to why it was made technically possible in JAVA, while in C++ it is not the case [An abstract class must contain at least one pure virtual function ].

While it is a rare thing to happen and such a design should always be questioned to see if it is the right thing to do, one specific case where it is justified could be :

The abstract class partially implements an interface, with the intention that its subclasses must complete the interface. To take a slightly contrived motoring analogy, a Chassis class may partially implement a Vehicle interface and provide a set of core methods from which a range of concrete Vehicle types are extended. Chassis is not a viable implementation of a Vehicle in its own right, so a concrete Car subclass would have to implement interface methods for functional wheels, engine and bodywork.

from http://www.codestyle.org/java/faq-Abstract.shtml#whynoabstract !

Sunday, June 13, 2010

Tail Recursion..

Was going through http://saicharan.in/blog/2010/05/binary-search-tree/ when I landed on tail recursion concept.

Have seen code like this before, but have not really noticed the difference between recursive and tail recursive code.

Tail Recursive code brings in lot of efficiency by drastically reducing the amount of stack space used. look up http://en.wikipedia.org/wiki/Tail_recursion !

Thursday, June 10, 2010

Garbage Collector in C++..

Why isn't there a garbage collector in C++, or why hasn't been added... this sure makes a interesting topic to know more about - here i found a fair explanation on the subject.

http://stackoverflow.com/questions/147130/why-doesnt-c-have-a-garbage-collector