2017-01-28 14 views
-1

У меня есть пустой класс MyJTextField простирающийся JTextField, и я хочу MyJTextField быть инициализирована как JPasswordField, как JTextField может сделать.Почему класс JTextField не создает экземпляр JPasswordField?

JTextField pass = new JPasswordField(); //no errors 
but 
MyJTextField pass = new JPasswordField();//"Type mismatch: cannot convert from JPasswordField to MyJTextField" 

ответ

1

Ваш MyJTextField является дочерним элементом JTextField. И JPasswordField также является дочерним элементом JTextField. Но MyJTextField не является дочерним элементом JPasswordField, поэтому MyJTextField не является JPasswordField, они являются братьями и сестрами.

//you can do 
    JTextField field1 = new JPasswordField(); //child is an instance of parent 
    JTextField field2 = new MyJTextField(); //child is an instance of parent 

    //you can't do 
    JPasswordField field3 = new JTextField(); // parent is not instance of child 
    MyJTextField field4 = new JTextField(); // parent is not instance of child 
    JPasswordField field5 = new MyJTextField(); // siblings are not instances of each other 
    MyJTextField field6 = new JPasswordField(); // siblings are not instances of each other 
+0

Thx, не осознавал этого. : / – tomyforever