public class Solution {
    public static void main(String[] args) {
        Cat cat = new TomCat();
        TomCat cat2 = new TomCat();
    }

    interface CanMove {
    }

    static class Cat implements CanMove {
    }

    static class TomCat extends Cat {

    }
}
I want to know how different between cat1 and cat2 form this code. I think cat1 is cat2 , or cat2 is cat1. they are same. Please help explain to me (I truly understand or I mistake)