|
Q:In Java, what is the difference
between an Interface and an Abstract
class?
A: An Abstract class declares have at
least one instance method that is
declared abstract which will be
implemented by the subclasses. An
abstract class can have instance methods
that implement a default behavior. An
Interface can only declare constants and
instance methods, but cannot implement
default behavior.
Q: Can you have virtual functions in
Java? Yes or No. If yes, then what are
virtual functions?
A: Yes, Java class functions are virtual
by default. Virtual functions are
functions of subclasses that can be
invoked from a reference to their
superclass. In other words, the
functions of the actual object are
called when a function is invoked on the
reference to that object.
Q:Write a function to reverse a
linked list p in C++?
A:
Link* reverse_list(Link* p)
{
if (p == NULL)
return NULL;
Link* h = p;
p = p->next;
h->next = NULL;
while (p != null)
{
Link* t = p->next;
p->next = h;
h = p;
p = t;
}
return h;
}
Q:In C++, what is the usefulness of
Virtual destructors?
A:Virtual destructors are neccessary to
reclaim memory that were allocated for
objects in the class hierarchy. If a
pointer to a base class object is
deleted, then the compiler guarantees
the various subclass destructors are
called in reverse order of the object
construction chain.
Q:What are mutex and semaphore? What
is the difference between them?
A:A mutex is a synchronization object
that allows only one process or thread
to access a critical code block. A
semaphore on the other hand allows one
or more processes or threads to access a
critial code block. A semaphore is a
multiple mutex |