Using the Keyword super in Java

If your method overrides one of its superclass’s methods, you can invoke the overridden method through the use of the keyword super. You can also use super to refer to a hidden field (although hiding fields is discouraged). Consider this class, Superclass:

Nếu phương thức của bạn viết đè một trong số những phương thức của lớp supper, bạn có thể gọi đến phương thức viết đè thông qua từ khóa supper. Bạn cũng có thể sử dụng từ khóa supper để chỉ một trường bị ẩn (dù việc ẩn các trường là không nên). Xem qua lớp Supperclass sau đây:

public class Superclass {

    public void printMethod() {
        System.out.println("Printed in Superclass.");
    }
}

Here is a subclass, called Subclass, that overrides printMethod():

Dưới đây là lớp phụ tên là Subclass, lớp này có viết đè phương thức printMethod():

public class Subclass extends Superclass {

    // overrides printMethod in Superclass
    public void printMethod() {
        super.printMethod();
        System.out.println("Printed in Subclass");
    }
    public static void main(String[] args) {
        Subclass s = new Subclass();
        s.printMethod();    
    }
}

Within Subclass, the simple name printMethod() refers to the one declared in Subclass, which overrides the one in Superclass. So, to refer to printMethod() inherited from Superclass, Subclass must use a qualified name, using super as shown. Compiling and executing Subclass prints the following:

Trong lớp Subclass, phương thức printMethod() trỏ đến một phương thức được khai báo trong lớp Subclass, phương thức này viết đè một phương thức trong lớp Superclass. Vậy để trỏ tới phương thức printMethod() dẫn xuất từ lớp Superclass, lớp Subclass phải sử dụng một tên đã được khai báo, sử dụng từ khóa super như bên trên. Biên dịch và chạy ta có kết quả như sau:

Kết luân: Hiểu nôm na, từ khóa super là đi bê nguyên xi cái code đã được khai báo ở trong lớp mà nó dẫn xuất. 🙂

Printed in Superclass.
Printed in Subclass
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s