Instance of para classe que herda

Bom dia galera, seguinte:

Em um certo momento da minha aplicação, recebo por parâmetro um Object e preciso ver se esse Object é instância de JFrame ou JDialog. O problema é que se eu tenho, por exemplo:

public class X extends JFrame{
}

e eu mando um objeto dessa classe e faço: if(x instance of JFrame), isso me retorna falso pelo fato de não ser ‘diretamente’ uma JFrame. Na verdade x é instance of X. Como faço para saber se essa classe herda de JFrame ou JDialog?

Obrigado!

Olá Wellington, veja o código abaixo:

import javax.swing.JFrame;

public class Testes {

    public static void main(String[] args) {

        X x = new X();
        
        if (x instanceof JFrame)
            System.out.println("x é instancia de JFrame");
        else
            System.out.println("x não é instancia de JFrame");
        
        Object x1 = new X();
        
        if (x1 instanceof JFrame)
            System.out.println("x1 é instancia de JFrame");   
        else
            System.out.println("x1 não é instancia de JFrame");        
        
        Object x2 = new Object();
        
        if (x2 instanceof JFrame)
            System.out.println("x2 é instancia de JFrame");   
        else
            System.out.println("x2 não é instancia de JFrame");         
    }
}

class X extends JFrame{
} 

Ele produz a seguinte saída:

x é instancia de JFrame
x1 é instancia de JFrame
x2 não é instancia de JFrame

Viu que tanto a declaração X x = new X() como a Object x1 = new X() retornaram verdade para instância de JFrame?