2017-01-28 5 views
-1

私はMyJTextFieldがJTextFieldのを拡張し、私はMyJTextFieldがJTextFieldのようなのJPasswordFieldは、行うことができますとして初期化したい空のクラスを持っています。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

関連する問題