Java this和超级关键字



我有一个关于Java this和超级关键字的问题,让我们举几个例子

Firts示例

import java.awt.*;
public class Main extends Frame {
        //constructor of the class 
        public Main () {
                super ("My frame");
                setSize (200,100);
                setVisible (true);
        }
        public static void main (String [] args) {
                 new Main ();
         }
}

的第二个例子

import java.awt.*;
public class Main extends Frame {
        //constructor of the class 
        public Main () {
                //here the difference from example 1    
                super ("My frame");
                super.setSize (200,100);
                super.setVisible (true);
        }
        public static void main (String [] args) {
                 new Main ();
         }
}

哪个例子更好,为什么?

现在让我们举一些关于这个关键字的例子

public class Main {
        public void print () {
                System.out.println ("Hi");
        }
        public static void main (String [] args) {
                 print();
         }
}

第二个示例

public class Main {
        public void print () {
                System.out.println ("Hi");
        }
        public static void main (String [] args) {
                 //here the difference
                 this.print();
         }
}

哪个更好,为什么?感谢您的回答

只有在真正需要的时候才使用super。如果重写setSize(),那么第二个示例将不会调用重写的方法。这不一定是所需的行为,因此通常应该只调用不带super前缀运算符的方法。通常情况下,最好编写这样的代码,即可以对其进行扩展或维护,而不必担心某些重写是否真的会从某些方法重写。另请参阅Vulcan关于该问题无效的评论。

最新更新