super

ในการสืบทอด (inheritance) คำว่า superclass หมายถึงคลาสแม่ และ subclass หมายถึงคลาสลูก (อาจจะเรียกคลาสแม่ว่า base class หรือเรียกคลาสลูกว่า derived class)

คำว่า super ในภาษาจาวา ใช้สำหรับเรียกคอนสตรัคเตอร์ของคลาสแม่

ตัวอย่างถัดไปมี 2 คลาส คือ Person และ Teacher

คลาส Teacher สืบทอดจาก Person และคอนสตรัคเตอร์ของคลาส Teacher เรียกคอนสตรัคเตอร์ของคลาส Person เพื่อกำหนดค่าให้กับแอททริบิวท์ name และ salary (ดูบรรทัดที่ 25)

class Person {
    private String name;
    private int salary;

    Person() {

    }

    Person(String n, int s) {
        name = n;
        salary = s;
    }

    String getName() {
        return name;
    }

    int getSalary() {
        return salary;
    }
}

class Teacher extends Person {
    Teacher(String n, int s) {
        super(n, s);
    }
}

public class Test {
    public static void main(String[] args) {
        Teacher t = new Teacher("Somchai", 10000);
        System.out.println(t.getName());
    }
}

ผลการทำงานคือ Somchai

เีราสามารถใช้คำว่า super เพื่อเรียกเมธอดของคลาสแม่ได้ (ดูบรรทัดที่ 9)

class Animal {
    void go() {
        System.out.println("Person go");
    }
}

class Cat extends Animal {
    void go() {
        super.go();
        System.out.println("Teacher go");
    }
}

public class Test {
    public static void main(String[] args) {
        Cat c = new Cat();
        c.go();
    }
}

ผลการทำงานคือ

Person go
Teacher go

เขียนโปรแกรม Java เบื้องต้น

หนังสือ Java Keywords

หากจะนำข้อความไปใช้ ต้องแสดงที่มา และห้ามใช้ในเชิงพาณิชย์

One thought on “super

Leave a Reply

Please log in using one of these methods to post your comment:

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