Advanced quizzes – Java inheritance

The following Java exercise(s) are designed for advanced level developers. If the level is too hard, then I recommend to select an easier one or you might consider reading my article about this topic, which offers a theoretical explanation including more exercises. Read More: Java Inheritance.


Quiz 1: Inheritance, accessing methods and constructors of a super class.

What happens when the following program is compiled and run?

public class SuperB {

	protected int a = 2;
	protected int b = 3;

	public SuperB() {
		a += 1;
		b += 2;
		System.out.print("-b" + b);
	public SuperB(int i) {
		b -= 1;
		System.out.print("-b" + a);
		a -= 1;
	public int getB(){
		this.a += 2;
		this.b += 4;
		return b - a;

public class SuperA extends SuperB {

	int a;
	int b = 1;

	public SuperA() {
		a += 7;
		b += 5;

public class MySub extends SuperA {

	public MySub() {
		System.out.print("-b" + a);
		System.out.print("-b" + b);
		System.out.print("-b" + getB());
	public static void main(String[] args){
		MySub mySub = new MySub();

Select the correct answer.

Sar Maroof is a professional software development teacher, gives master classes and publishes technical articles. He is also an expert software developer and worked for several big as well as small companies and later as a freelancer.
 Subscribe to Sar Maroof's RSS feeds!
 Mail this page to a friend!
 Bookmark this page!

1 Comment

Add a Comment
  1. That’s 2 clever by half and 2×2 clever 4 me. Thnska!

Leave a Reply