What will happen when you compile and run the following code snippet?

interface I {}

class Base implements I {}

public class X extends Base
{
    public static void main(final String[] args)
    {
        Base b = null;
        I i = new X();

        System.out.println(b instanceof I);
        System.out.println(i instanceof X);
    }
}

A) Compiler error.
B) Output: false false
C) Output: true false
D) Output: false true
E) Output: true true