abstract

abstract method หมายถึงเมธอดที่ไม่อธิบายการทำงาน

เมธอด go() ในคลาส A เป็น abstract method (บรรทัดที่ 2) สังเกตว่าเมธอดนี้ไม่มีำคำสั่งภาษาจาวาเขียนไว้ ไม่มีวงเล็บปีกกา { }

คลาส A มี abstract method คลาสนี้จึงต้องเป็น abstract class (บรรทัดที่ 1) ไม่งั้นคอมไพล์ไม่ผ่าน

abstract class A {
    abstract void go();
}

เราไม่สามารถ new วัตถุของ abstract class ได้ บรรทัดที่ 8 จึงคอมไพล์ไม่ผ่าน

abstract class A {
    abstract void go();
}

public class Test {
    public static void main(String[] args) {
        A ref;
        ref = new A();
    }
}

สาเหตุที่จาวาไม่อนุญาตให้ new abstract class ก็เพราะว่าคลาสดังกล่าว “อาจจะ” มี abstract method ถ้าเราเรียก abstract method คอมพิวเตอร์ก็ไม่รู้ว่าจะทำงานอย่างไร (abstract method ไม่มีคำสั่งเขียนไว้)

ปรกติเราจะ new วัตถุที่สืบทอดจาก abstract class (บรรทัดที่ 15)

abstract class A {
    abstract void go();
}

class B extends A {
    @Override
    void go() {
        System.out.println("B goes");
    }
}

public class Test {
    public static void main(String[] args) {
        A ref;
        ref = new B();
        ref.go();
    }
}

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

หนังสือ Java Keywords

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

Advertisements

One thought on “abstract

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