Which class can not be a subclass in java and why?

I am not getting this question correctly:

Which class can not be a subclass in java and why?
a.) abstract class
b.) parent class
c.) final class
d.) none of them

Actually according to me a parent class can not be a subclass, but form http://www.mastguru.com i got the result that, "final class" can not be a subclass. According to java standard we cant create sub class of a final class. So please suggest me and explain to clear my doubt.

Jon Skeet
people
quotationmark

Any of these can be a subclass. For example:

public class Superclass {
}

public abstract class AbstractSubclass extends Superclass {
}

public class MiddleClass extends Superclass {
}

public class BottomClass extends MiddleClass {
}

public final class FinalSubclass extends Superclass {
}
  • AbstractSubclass is an example of a subclass which is abstract
  • MiddleClass is an example of a "parent class" (by which it means superclass, I assume) which is also a subclass
  • FinalSubclass is an example of a subclass which is final

Even Superclass isn't really needed here, as any class other than java.lang.Object is a subclass - either of java.lang.Object or of some (potentially indirect) subclass of java.lang.Object.

people

See more on this question at Stackoverflow